diff --git a/swarm/ollama.yaml b/swarm/ollama.yaml new file mode 100644 index 0000000..6754475 --- /dev/null +++ b/swarm/ollama.yaml @@ -0,0 +1,118 @@ +version: "3.9" + +networks: + netgrimoire: + external: true + +services: + ollama: + image: ollama/ollama:latest + networks: netgrimoire + environment: + - TZ=America/Chicago + - PUID=1964 + - PGID=1964 + user: "1964:1964" + volumes: + - /DockerVol/ollama:/root/.ollama + ports: + - "11434:11434" + deploy: + replicas: 1 + placement: + constraints: + - node.hostname == docker4 + restart_policy: + condition: any + labels: + # --- DIUN --- + - "diun.enable=true" + + # --- KUMA --- + - "kuma.ollama.http.name=Ollama API" + - "kuma.ollama.http.url=http://docker4:11434" + + # --- CADDY (optional) --- + # If you want to publish the Ollama API through Caddy, uncomment: + # - "caddy=ollama.netgrimoire.com" + # - "caddy.reverse_proxy={{upstreams 11434}}" + + openwebui: + image: ghcr.io/open-webui/open-webui:main + networks: netgrimoire + environment: + - TZ=America/Chicago + - PUID=1964 + - PGID=1964 + - OLLAMA_BASE_URL=http://ollama:11434 + user: "1964:1964" + volumes: + - /DockerVol/openwebui:/app/backend/data + # Keep port published for initial testing / break-glass; + # once Caddy is working you can remove this. + ports: + - "3000:8080" + deploy: + replicas: 1 + placement: + constraints: + - node.hostname == docker4 + restart_policy: + condition: any + labels: + # --- Homepage --- + - homepage.group=Applications + - homepage.name=Ollama + - homepage.icon=Ollama.png + - homepage.href=https://openwebui.netgrimoire.com + - homepage.description=Self Hosted AI + + # --- DIUN --- + - "diun.enable=true" + + # --- KUMA --- + - "kuma.openwebui.http.name=Open WebUI" + - "kuma.openwebui.http.url=https://openwebui.netgrimoire.com" + + # --- CADDY --- + - "caddy=openwebui.netgrimoire.com" + - "caddy.reverse_proxy={{upstreams 8080}}" + + qdrant: + image: qdrant/qdrant:latest + networks: netgrimoire + environment: + - TZ=America/Chicago + - PUID=1964 + - PGID=1964 + user: "1964:1964" + volumes: + - /DockerVol/qdrant:/qdrant/storage + ports: + - "6333:6333" + deploy: + replicas: 1 + placement: + constraints: + - node.hostname == docker4 + restart_policy: + condition: any + labels: + + # --- Homepage --- + - homepage.group=Applications + - homepage.name=qdrant (Local access only) + - homepage.icon=Oqdrant.png + - homepage.href=http://docker4:6333 + - homepage.description=Self Hosted AI + # --- DIUN --- + - "diun.enable=true" + + # --- KUMA --- + - "kuma.qdrant.http.name=Qdrant" + - "kuma.qdrant.http.url=http://docker4:6333" + + # --- CADDY (optional) --- + # Qdrant has a UI, but many people keep it internal. If you want it published: + # - "caddy=qdrant.netgrimoire.com" + # - "caddy.reverse_proxy={{upstreams 6333}}"