host: chelsty exposure_classes: local-only: description: Reachable only from CHELSTY-local networks or container networks. public_ingress: false tailscale_required: false tailscale-internal: description: Reachable through the Tailscale mesh by approved tailnet clients. public_ingress: false tailscale_required: true public: description: Reachable from the public internet through an explicit ingress path. public_ingress: true tailscale_required: false operational_constraints: uplink: lte connectivity: intermittent offline_operation_required: true must_not_depend_on: - saturn - vps - forgejo services: homeassistant: role: home-automation-controller deployment_model: docker-compose exposure: tailscale-internal offline_required: true depends_on: local: - mosquitto - zigbee2mqtt external: [] ports: - name: http container_port: 8123 protocol: tcp runtime: config_path: /opt/homelab/config/homeassistant data_path: /opt/homelab/data/homeassistant logs_path: /opt/homelab/logs/homeassistant backup: recommended: true include: - /opt/homelab/config/homeassistant - /opt/homelab/data/homeassistant notes: - Back up before Home Assistant core, supervisor-equivalent, or integration upgrades. - Keep local restore copies on CHELSTY because LTE connectivity may be unavailable during recovery. zigbee2mqtt: role: zigbee-mqtt-bridge deployment_model: docker-compose exposure: local-only offline_required: true depends_on: local: - mosquitto external: - slzb-06u coordinator: name: slzb-06u connection: network usb_device: null ports: - name: frontend container_port: 8080 protocol: tcp exposure: tailscale-internal runtime: config_path: /opt/homelab/config/zigbee2mqtt data_path: /opt/homelab/data/zigbee2mqtt logs_path: /opt/homelab/logs/zigbee2mqtt backup: recommended: true include: - /opt/homelab/config/zigbee2mqtt - /opt/homelab/data/zigbee2mqtt notes: - Include configuration.yaml, database.db, coordinator backup files, and network key material. - Restore Zigbee2MQTT state together with the SLZB-06U coordinator state when replacing hardware. mosquitto: role: local-mqtt-broker deployment_model: docker-compose exposure: local-only offline_required: true depends_on: local: [] external: [] ports: - name: mqtt container_port: 1883 protocol: tcp runtime: config_path: /opt/homelab/config/mosquitto data_path: /opt/homelab/data/mosquitto logs_path: /opt/homelab/logs/mosquitto backup: recommended: true include: - /opt/homelab/config/mosquitto - /opt/homelab/data/mosquitto notes: - Retain ACL, password, persistence, and bridge configuration if enabled. stability-agent: role: node-stability-monitor deployment_model: docker-compose exposure: local-only offline_required: true depends_on: local: - mosquitto external: [] runtime: config_path: null data_path: /opt/homelab/state logs_path: /opt/homelab/events backup: recommended: false notes: - Events and state are transient or can be reconstructed; high-frequency writes.