← Journey Phase 1A — GMKtec services

GMKtec Gets Its Services

Photo by wu yi on Unsplash

Moved n8n, Penpot, and CouchDB off the Pi4 and onto the GMKtec. CouchDB migration used a one-way replication window with a clean rollback point before cutting over DNS.

SSH’d into the GMKtec (ssh llm), laid down the folder structure under ~/docker/{n8n,penpot,couchdb,qdrant,browserless} and ~/scripts, then created the shared homelab Docker network. Cloned the homelab repo and copied compose files into place. Filled in .env files from examples before touching any compose up.

Services deployed

GMKtec NucBox K8 — always-on
n8n live
:5678
Workflow automation
n8n.[domain]
Penpot live
:9002
Self-hosted design tool
penpot.[domain]
CouchDB live
:5984
Obsidian LiveSync backend
couchdb.[domain]
Ollama live
:11434
Local LLM — qwen2.5:7b via Vulkan
Qdrant staged
:6333
Vector DB — Phase 6
Phase 6
Browserless staged
:3001
Headless Chrome — Phase 4B
Phase 4B

What moved where

Removed
  • Pi4: CouchDB (docker stop couchdb)
  • Pi4: n8n (never deployed there)
  • Pi4: Penpot (never deployed there)
Added
  • GMKtec: n8n (homelab network, port 5678)
  • GMKtec: Penpot (homelab network, port 9002)
  • GMKtec: CouchDB (migrated, port 5984)
  • NPM proxy hosts for all three (DNS challenge SSL)

CouchDB migration sequence

CouchDB was the part worth being careful about. The sequence had a clean rollback point built in:

Pi4 CouchDB is still running and untouched post-migration — it stays up until Phase 1B confirms the new backend is stable for 24h.

What this unblocks

Qdrant and Browserless directories are staged and ready. The shared homelab Docker network and compose pattern are proven. Next session deploys the remaining services and starts wiring n8n workflows against the full stack.