--- title: Deploy Gremlin Stack description: How to deploy and redeploy the Gremlin AI stack published: true date: 2026-04-12T00:00:00.000Z tags: gremlin, deploy, runbook editor: markdown dateCreated: 2026-04-12T00:00:00.000Z --- # Deploy Gremlin Stack All Gremlin services run on `docker4` (hermes), pinned via `node.hostname == docker4`. --- ## Prerequisites ```bash # On docker4 — create volume directories mkdir -p /DockerVol/ollama mkdir -p /DockerVol/open-webui mkdir -p /DockerVol/qdrant # n8n requires specific ownership mkdir -p /DockerVol/n8n chown -R 1000:1000 /DockerVol/n8n ``` --- ## Deploy ```bash cd ~/services && git pull cd swarm/stack/Gremlin set -a && source .env && set +a docker stack config --compose-file gremlin-stack.yml > resolved.yml docker stack deploy --compose-file resolved.yml gremlin rm resolved.yml docker stack services gremlin ``` --- ## Pull Models After Deploy Models must be pulled before n8n workflows run. Ollama returns a silent model-not-found error if workflows fire first. ```bash docker exec $(docker ps -qf name=gremlin_ollama) ollama pull llama3.2:3b docker exec $(docker ps -qf name=gremlin_ollama) ollama pull qwen2.5-coder:7b # Verify docker exec $(docker ps -qf name=gremlin_ollama) ollama list ``` --- ## Verify Open WebUI Secret Key Check that `WEBUI_SECRET_KEY` in `.env` on docker4 is set to a real secret, not the placeholder `change-this-secret-key`. --- ## Service URLs After Deploy | Service | Internal | External | |---------|----------|---------| | Ollama | `http://ollama:11434` | `http://ollama.netgrimoire.com:11434` | | Open WebUI | `http://open-webui:8080` | `https://ai.netgrimoire.com` | | Qdrant | `http://qdrant:6333` | `http://qdrant.netgrimoire.com:6333/dashboard` | | n8n | `http://n8n:5678` | `https://n8n.netgrimoire.com` |