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>
23 lines
790 B
YAML
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]
|