Give `river` a dedicated RDMA VF and two RSTP trunk attachments. Keep client services on the router VIPs and carry Digiweb VLANs over both switch paths. Set VF trust, multicast reception, bridge MAC and ARP behavior for local switching. Wait for Kea interface readiness and apply RSTP costs through `mstpd` despite port-registration and rename races. Load `palace`'s RAID module in the initrd. Record RouterOS and RouterBOOT upgrades and validate port, carrier and switch outages. Document the deployed architecture, interface handoffs and recovery procedures. Add physical socket maps, NIC capacities and cable connections alongside the logical topology and failover checks.
2.8 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 - nixpkgs:
mine
Role
Home Assistant
services.home-assistant uses declarative configuration (configWritable = false). It enables
the esphome, zha, denonavr, webostv, androidtv_remote, heos, mqtt, wled, met and
google_translate components, plus custom alarmo, frigate, west_wood_club and Irish Rail
integrations. A hass-cli wrapper uses a token from my.secrets to reach the local server.
- mosquitto — MQTT broker (anonymous local listener; port 1883 allowed, alongside HTTP).
- go2rtc — restreams the Reolink living-room camera (RTSP from
reolink-living-room, on thelonetwork) and the office USB webcam (/dev/video0via ffmpeg). - Frigate (
services.frigate,frigate.h.nul.ie— thefrigatealt name on thehiassignment) — records both restreamed cameras with a short retention policy; 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
See the consolidated network assignments table (this box: hass).
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). - The matching raw USB device node allowed through from
sfh.
Networking
MACVLAN interfaces created from sfh's container NICs: host0 on ctrs-hi (the hi assignment,
alt name frigate, default gateway via the VIP) and lan-lo on ctrs-lo (the lo
assignment, no gateway) — the lo interface 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.