# CHELSTY Runtime This document describes the runtime environment and deployment flow for CHELSTY, an offline-capable home automation edge node. ## Runtime Layout The CHELSTY runtime is located at `/opt/homelab`. - `/opt/homelab/config/`: Service-specific configurations and compose overrides. - `/opt/homelab/data/`: Persistent data for services. - `/opt/homelab/logs/`: Service logs. ### Key Service Locations - **Mosquitto**: `/opt/homelab/config/mosquitto/` - **Zigbee2MQTT**: `/opt/homelab/config/zigbee2mqtt/` ## SLZB-06U Integration CHELSTY uses a SMLIGHT SLZB-06U Zigbee coordinator connected via Ethernet/TCP. - **Coordinator IP**: 192.168.1.105 - **Port**: 6638 - **Protocol**: TCP (ezsp adapter) Zigbee2MQTT is configured to connect to this coordinator over the local network. ## Offline & LTE Assumptions - **WAN Resilience**: All core automation (Zigbee, MQTT) runs locally on CHELSTY. - **Connectivity**: LTE provides intermittent uplink for remote management and Tailscale access. - **Home Assistant**: Runs on `chelsty-ha` node, connecting to the Mosquitto broker on `chelsty-infra`. ## Deployment Flow 1. **Initial Bootstrap**: Run the bootstrap script on the CHELSTY node: ```bash ./scripts/bootstrap/chelsty-runtime.sh ``` 2. **Manual Configuration**: - Edit `/opt/homelab/config/zigbee2mqtt/.env` with MQTT credentials. - Add Mosquitto user: ```bash sudo mosquitto_passwd -b /opt/homelab/data/mosquitto/config/password.txt ``` 3. **Service Deployment**: Use the staged deployment runtime: ```bash ./scripts/deploy/deploy-node.sh chelsty-infra ./scripts/deploy/deploy-node.sh chelsty-ha ``` ## Recovery Procedure In case of runtime failure: 1. Verify Docker and Compose plugin: `docker compose version` 2. Re-run bootstrap script to ensure directory structure and basic configs. 3. Check Mosquitto logs: `tail -f /opt/homelab/data/mosquitto/log/mosquitto.log` 4. Verify SLZB-06U reachability: `ping 192.168.1.105`