Files
jackos1998 d51f2d62b6 docs: Document the deployment
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.
2026-07-26 19:16:43 +01:00

3.1 KiB

hass

Home automation container: Home Assistant plus its supporting services (MQTT, camera restreaming, Frigate NVR), running on sfh.

Role

  • Home Assistant (services.home-assistant) — declarative config (configWritable = false), components esphome, zha, denonavr, webostv, androidtv_remote, heos, mqtt, wled, met, google_translate; custom components alarmo, frigate, west_wood_club; a custom Irish Rail sensor (Glenageary ↔ Dublin Connolly). A hass-cli wrapper is on the box, wired to the local server with a token from my.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 the lo leg) and the office USB webcam (/dev/video0 via ffmpeg).
  • Frigate (services.frigate, frigate.h.nul.ie — the frigate alt name on the hi assignment) — records both restreamed cameras with 1-day retention; detection is disabled.
  • External access is via https://hass.nul.ie through the middleman reverse proxy (trusted_proxies); internally it's hass-ctr.h.nul.ie.
  • Not a deploy-rs target (my.deploy.enable = false) — it's rendered via my.asContainer and started by sfh's my.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 by zha).
  • USB webcam → /dev/video0 (go2rtc's webcam_office stream).
  • /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