Files
truenas-stacks/DEPLOYMENT_HANDOFF.md

2.9 KiB

Deployment Handoff — Resume Here

Where We Left Off

Phase 2 (AI stack) is fully deployed and verified on PlausibleDeniability (10.5.30.6). We were about to verify Gotify (Phase 1) and then deploy n8n (Phase 3).

What's Done

Phase 2 — AI Stack (COMPLETE)

Historical note: this handoff reflects the original PD-first AI deployment snapshot, not the current Honcho routing policy. All 6 containers running and verified on PD (10.5.30.6):

  • Ollama: port 11434 — qwen2.5:14b loaded
  • OpenWebUI: port 8282 (→8080)
  • Qdrant: port 6333 (HTTP), 6334 (gRPC)
  • LiteLLM: port 4000 — auth working, inference verified (medium tier → qwen2.5:14b)
  • Reranker (TEI): port 8787 (→80) — bge-reranker-v2-m3 via safetensors
  • Whisper: port 8786 (→8000)

Key Fixes Applied (reference for future troubleshooting)

  1. TrueNAS Scale Docker quirk: curl localhost:PORT returns 000. Always use curl 10.5.30.6:PORT.
  2. Reranker image: Use cpu-latest not cpu-1.5 (hf-hub bug).
  3. LiteLLM config: Remove database_url (newer versions try Prisma/PostgreSQL). Set master_key: "os.environ/LITELLM_MASTER_KEY" to read from env var.

Phase 1 — Gotify (DEPLOYED, NOT VERIFIED)

Gotify was deployed previously but hasn't been verified this session.

What's Next (in order)

1. Verify Gotify

Run these on PD and confirm output:

docker ps --filter name=gotify --format "table {{.Names}}\t{{.Image}}\t{{.Status}}\t{{.Ports}}"
docker logs gotify --tail 20
docker inspect gotify --format '{{json .Mounts}}' | python3 -m json.tool
docker inspect gotify --format '{{json .NetworkSettings.Networks}}' | python3 -m json.tool
curl -sw "\n%{http_code}" http://10.5.30.6:8484/health
ls -la /mnt/docker-ssd/docker/compose/automation/
cat /mnt/docker-ssd/docker/compose/automation/docker-compose.yaml

2. Deploy n8n (Phase 3)

Per HOMELAB_BUILDOUT_PLAN.md Phase 3:

  • Create postgres user/db for n8n on shared-postgres
  • Scaffold /mnt/tank/docker/appdata/n8n (chown 1000:1000)
  • Update automation compose to add n8n alongside Gotify
  • Generate secrets for .env (N8N_DB_PASS, N8N_ENCRYPTION_KEY)
  • Deploy and verify (DB migration, network connectivity, UI access)

3. Pending Config (do whenever)

  • OpenWebUI → add LiteLLM as OpenAI connection (http://litellm:4000/v1)
  • OpenWebUI → optionally set RAG vector DB to Qdrant (http://qdrant:6333)

Network Reference

Network Purpose
ai-services Cross-stack: AI containers ↔ n8n, future services
ix-databases_shared-databases Shared postgres/redis access
pangolin Reverse proxy / external exposure

Machine IPs

  • PlausibleDeniability (PD): 10.5.30.6 — TrueNAS Scale, RTX 2080 Ti
  • ROCINANTE: 10.5.30.112 — RTX 4090
  • N.O.M.A.D.: 10.5.30.7 — Ubuntu, GTX 1080

LiteLLM .env Secrets (on PD at /mnt/docker-ssd/docker/compose/ai/.env)

Already configured — do not regenerate. Master key is in the .env file as LITELLM_MASTER_KEY.