homelab-codex-ws/services/ollama/docker-compose.yml
oskar 38cb204a64 fix(ollama): declare service on SOLARIA, restrict bind, add cutover runbook
Ollama's service.yaml/docker-compose.yml declared owner_node: solaria but
was never added to hosts/solaria/services.yaml, the manifest deploy-node.sh
actually reads — so it stayed running manually/natively instead of via the
declarative pipeline. Add the missing entry.

Also switch the port publish from 0.0.0.0 to loopback + TAILSCALE_BIND_IP
(same convention as llm-gateway@PIHA), since this is a private service and
llm-gateway@PIHA is the only consumer beyond the host itself.

Live cutover (relocating the existing native model store, disabling the
systemd unit, bringing up the container, verifying bge-m3 embeddings +
GPU use) is documented in docs/infra/ollama-solaria-cutover-2026-07-15.md
but not executed here — no SSH access to SOLARIA from this worktree.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-07-15 16:09:08 +02:00

23 lines
790 B
YAML

services:
ollama:
image: ollama/ollama:latest
container_name: ollama
restart: unless-stopped
ports:
# Loopback: service.yaml's healthcheck + healthcheck.sh curl localhost
# directly on the node. Tailscale IP: llm-gateway@PIHA reaches this over
# the mesh as http://solaria:11434 (MagicDNS). No 0.0.0.0 — this is a
# private service, don't expose wider than local + internal network.
# Requires .env (from env.example) next to this file at deploy.
- "127.0.0.1:11434:11434"
- "${TAILSCALE_BIND_IP}:11434:11434"
volumes:
- /opt/homelab/data/ollama:/root/.ollama
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]