From 2eb1e2bb803efaac549566d47d3b5e67fa2a0a46 Mon Sep 17 00:00:00 2001 From: traveler Date: Sun, 29 Mar 2026 19:09:37 -0500 Subject: [PATCH] gremlin --- swarm/stack/Gremlin/.env | 30 ++++++ swarm/stack/Gremlin/gremlin-stack.yml | 126 ++++++++++++++++++++++++++ 2 files changed, 156 insertions(+) create mode 100644 swarm/stack/Gremlin/.env create mode 100644 swarm/stack/Gremlin/gremlin-stack.yml diff --git a/swarm/stack/Gremlin/.env b/swarm/stack/Gremlin/.env new file mode 100644 index 0000000..4224507 --- /dev/null +++ b/swarm/stack/Gremlin/.env @@ -0,0 +1,30 @@ +# Gremlin Stack — Environment Variables +# Copy to your deploy host and fill in values before deploying + +# ── Open WebUI ──────────────────────────────────────────────────────────────── +WEBUI_SECRET_KEY=F@lcon13 + +# ── n8n Auth ────────────────────────────────────────────────────────────────── +N8N_USER=admin +N8N_PASSWORD=F@lcon13 + +# ── ntfy (self-hosted) ──────────────────────────────────────────────────────── +NTFY_URL=https://ntfy.netgrimoire.com + +# ── Forgejo — Source Repos ──────────────────────────────────────────────────── +FORGEJO_URL=https://git.netgrimoire.com +# Read token — scopes: repository:read +FORGEJO_TOKEN=e8fe0f13a526dc53e5b76c5783b7d09e6a2a7eb0 + +# ── Forgejo — Docs Repo (where Gremlin commits generated docs) ─────────────── +FORGEJO_DOCS_OWNER=netgrimoire +FORGEJO_DOCS_REPO=docs +# Write token — scopes: repository:read, repository:write, repository:contents +FORGEJO_WRITE_TOKEN=0d5a2f82d8dc579bba2f132cee15bf53cd0188c0 + +# ── Ollama Models ───────────────────────────────────────────────────────────── +# Pull after first deploy: +# 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 +OLLAMA_MODEL_GENERAL=llama3.2:3b +OLLAMA_MODEL_CODE=qwen2.5-coder:7b \ No newline at end of file diff --git a/swarm/stack/Gremlin/gremlin-stack.yml b/swarm/stack/Gremlin/gremlin-stack.yml new file mode 100644 index 0000000..0ed61a4 --- /dev/null +++ b/swarm/stack/Gremlin/gremlin-stack.yml @@ -0,0 +1,126 @@ +services: + ollama: + image: ollama/ollama:latest + ports: + - "11434:11434" + volumes: + - /DockerVol/ollama:/root/.ollama + environment: + - OLLAMA_ORIGINS=* + networks: + - netgrimoire + deploy: + labels: + - homepage.group=Gremlin + - homepage.name=Ollama + - homepage.icon=ollama.png + - homepage.href=http://ollama.netgrimoire.com:11434 + - homepage.description=Local LLM Runtime + - kuma.ollama.http.name=Ollama API + - kuma.ollama.http.url=http://ollama:11434/api/tags + placement: + constraints: + - node.hostname == docker4 + # Uncomment for GPU support + # resources: + # reservations: + # devices: + # - driver: nvidia + # count: 1 + # capabilities: [gpu] + + open-webui: + image: ghcr.io/open-webui/open-webui:main + ports: + - "3000:8080" + volumes: + - /DockerVol/open-webui:/app/backend/data + environment: + - OLLAMA_BASE_URL=http://ollama:11434 + - WEBUI_SECRET_KEY=${WEBUI_SECRET_KEY} + - ENABLE_RAG_WEB_SEARCH=true + - ENABLE_OLLAMA_API=true + - QDRANT_HOST=qdrant + - QDRANT_PORT=6333 + networks: + - netgrimoire + deploy: + labels: + - homepage.group=Gremlin + - homepage.name=Open WebUI + - homepage.icon=openwebui.png + - homepage.href=https://ai.netgrimoire.com + - homepage.description=Gremlin Chat Interface + - kuma.openwebui.http.name=Open WebUI + - kuma.openwebui.http.url=http://open-webui:8080 + - caddy=ai.netgrimoire.com + - caddy.reverse_proxy={{upstreams 8080}} + placement: + constraints: + - node.hostname == docker4 + + qdrant: + image: qdrant/qdrant:latest + ports: + - "6333:6333" + - "6334:6334" + volumes: + - /DockerVol/qdrant:/qdrant/storage + environment: + - QDRANT__SERVICE__GRPC_PORT=6334 + networks: + - netgrimoire + deploy: + labels: + - homepage.group=Gremlin + - homepage.name=Qdrant + - homepage.icon=qdrant.png + - homepage.href=http://qdrant.netgrimoire.com:6333/dashboard + - homepage.description=Vector Database + - kuma.qdrant.http.name=Qdrant + - kuma.qdrant.http.url=http://qdrant:6333 + placement: + constraints: + - node.hostname == docker4 + + n8n: + image: n8nio/n8n:latest + ports: + - "5678:5678" + volumes: + - /DockerVol/n8n:/home/node/.n8n + - /DockerVol/n8n/workflows:/home/node/.n8n/workflows + environment: + - N8N_BASIC_AUTH_ACTIVE=true + - N8N_BASIC_AUTH_USER=${N8N_USER} + - N8N_BASIC_AUTH_PASSWORD=${N8N_PASSWORD} + - WEBHOOK_URL=https://n8n.netgrimoire.com/ + - GENERIC_TIMEZONE=America/Chicago + - N8N_EDITOR_BASE_URL=https://n8n.netgrimoire.com/ + - OLLAMA_BASE_URL=http://ollama:11434 + - NTFY_URL=${NTFY_URL} + - FORGEJO_URL=${FORGEJO_URL} + - FORGEJO_TOKEN=${FORGEJO_TOKEN} + - FORGEJO_DOCS_OWNER=${FORGEJO_DOCS_OWNER} + - FORGEJO_DOCS_REPO=${FORGEJO_DOCS_REPO} + - FORGEJO_WRITE_TOKEN=${FORGEJO_WRITE_TOKEN} + networks: + - netgrimoire + deploy: + labels: + - homepage.group=Gremlin + - homepage.name=n8n + - homepage.icon=n8n.png + - homepage.href=https://n8n.netgrimoire.com + - homepage.description=Workflow Automation + - kuma.n8n.http.name=n8n + - kuma.n8n.http.url=http://n8n:5678 + - caddy=n8n.netgrimoire.com + - caddy.reverse_proxy={{upstreams 5678}} + placement: + constraints: + - node.hostname == docker4 + +networks: + netgrimoire: + external: true \ No newline at end of file