d51f2d62b6
Add a top-level README mapping the boxes and a full docs/ tree: topic pages (architecture, networking, deployment), per-site box pages for colony and home with containers nested under their hosts, remote and mobile boxes, the installer, and the home switch fabric reference (folded in from home-switches.md, with AGENTS.md and code comments retargeted to its new home). Box pages carry marked assignment tables that CI regenerates from nixos.allAssignments. AGENTS.md points at the new docs and keeps its terse agent version of the mechanics, referring to the topic pages for depth.
3.1 KiB
3.1 KiB
hass
Home automation container: Home Assistant plus its supporting services (MQTT, camera restreaming,
Frigate NVR), running on sfh.
- Source:
nixos/boxes/home/palace/vms/sfh/containers/hass.nix - Host: NixOS container on
sfh
Role
- Home Assistant (
services.home-assistant) — declarative config (configWritable = false), componentsesphome,zha,denonavr,webostv,androidtv_remote,heos,mqtt,wled,met,google_translate; custom componentsalarmo,frigate,west_wood_club; a custom Irish Rail sensor (Glenageary ↔ Dublin Connolly). Ahass-cliwrapper is on the box, wired to the local server with a token frommy.secrets. - mosquitto — MQTT broker (anonymous local listener; port 1883 allowed, alongside HTTP).
- go2rtc — restreams the Reolink living-room camera (RTSP from
reolink-living-room, on theloleg) and the office USB webcam (/dev/video0via ffmpeg). - Frigate (
services.frigate,frigate.h.nul.ie— thefrigatealt name on thehiassignment) — records both restreamed cameras with 1-day retention; detection is disabled. - External access is via
https://hass.nul.iethrough themiddlemanreverse proxy (trusted_proxies); internally it'shass-ctr.h.nul.ie. - Not a deploy-rs target (
my.deploy.enable = false) — it's rendered viamy.asContainerand started bysfh'smy.containers.instances.
Network assignments
| Name | Assignment | IPv4 | IPv6 | Domain | Notes |
|---|---|---|---|---|---|
| hass-ctr (frigate) | hi | 192.168.68.103/22 gw 192.168.71.254 |
2a0e:97c0:4d0:1::5:3/64 |
h.nul.ie | |
| hass-ctr-lo | lo | 192.168.72.103/21 |
2a0e:97c0:4d0:2::5:3/64 |
h.nul.ie |
Storage
Frigate footage lives on a separate HDD LV: palace passes the hdds/frigate LVM LV to the
sfh VM, sfh mounts it at /mnt/frigate, and the container bind-mounts it at /var/lib/frigate
(read-write). This keeps recording churn off the NVMe-oF root.
Devices
Passed through from sfh (USB host ports on palace):
- Nabu Casa Connect ZBT-1 Zigbee coordinator →
/dev/ttyUSB0(used byzha). - USB webcam →
/dev/video0(go2rtc'swebcam_officestream). /dev/bus/usb/001/002(raw USB device node).
Networking
MACVLAN legs created from sfh's container NICs: host0 on lan-hi-ctrs (the hi assignment,
alt name frigate, default gateway via the VIP) and lan-lo on lan-lo-ctrs (the lo
assignment, no gateway) — the lo leg reaches the IoT devices (the Reolink camera lives there).
Notable config files
nixos/boxes/home/palace/vms/sfh/containers/hass.nix— container system: Home Assistant, Frigate, mosquitto, go2rtc.nixos/boxes/home/palace/vms/sfh/default.nix— thesfhside: bind mounts, MACVLAN wiring,DeviceAllow.