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=open-webui:8080 - caddy_ingress_network=netgrimoire 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} - N8N_BLOCK_ENV_ACCESS_IN_NODE=false 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=n8n:5678 - caddy_ingress_network=netgrimoire placement: constraints: - node.hostname == docker4 networks: netgrimoire: external: true