- chelsty-runtime.md: references chelsty-infra and chelsty-ha nodes - chelsty-stability-agent.md: scoped to chelsty-infra - topology.yaml: chelsty monolith replaced with chelsty-infra + chelsty-ha
62 lines
2 KiB
Markdown
62 lines
2 KiB
Markdown
# 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 <user> <password>
|
|
```
|
|
|
|
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`
|