host: lustro

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

  node-exporter:
    # Keyed node-exporter (hyphen) — that is the container / world-state name
    # on lustro; a node_exporter entry would drift as missing_service.
    role: metrics-exporter
    deployment_model: docker-compose
    exposure: local-only
    offline_required: true
    depends_on:
      local: []
      external: []

  piper-tts:
    # TTS engine for the MagicMirror. No services/piper-tts dir in the repo —
    # deployed locally on the Pi; verified running 2026-07-30 via world state
    # (lustro/piper-tts healthy) and its service_healthy event stream
    # (recon F20.11).
    role: tts-engine
    deployment_model: docker-compose
    exposure: local-only
    offline_required: true
    depends_on:
      local: []
      external: []

  # watchtower also runs on lustro (world state: lustro/watchtower) — a
  # container auto-updater, left unmanaged deliberately; not desired state.
