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>
33 lines
953 B
YAML
33 lines
953 B
YAML
host: solaria
|
|
|
|
services:
|
|
node-agent:
|
|
role: node-stability-monitor
|
|
deployment_model: docker-compose
|
|
exposure: local-only
|
|
offline_required: true
|
|
depends_on:
|
|
local: []
|
|
external: []
|
|
runtime:
|
|
config_path: /opt/homelab/config/node-agent
|
|
data_path: /opt/homelab/state
|
|
logs_path: /opt/homelab/events
|
|
|
|
ollama:
|
|
role: llm-inference # GPU-backed inference: embeddings (bge-m3) + coder models
|
|
deployment_model: docker-compose
|
|
exposure: private # Tailscale-only bind (TAILSCALE_BIND_IP) + loopback; consumed by llm-gateway@PIHA over mesh
|
|
offline_required: false
|
|
depends_on:
|
|
local: []
|
|
external: []
|
|
ports:
|
|
- name: http
|
|
container_port: 11434
|
|
protocol: tcp
|
|
runtime:
|
|
# .env (TAILSCALE_BIND_IP) lives alongside the compose file, matching llm-gateway
|
|
config_path: services/ollama
|
|
data_path: /opt/homelab/data/ollama
|