Homelab — Week of 2026-04-28 → 2026-05-04
Here are some updates on the homelab for the week of 28 April 2026. This is AI generated with the narration provided by me.
Highlights
- Home Assistant + MQTT stack landed. Phase 4.5/4.6/4.7 shipped together: Mosquitto broker on
ops_net, Home Assistant on bridged networking behind Traefik, and govee2mqtt bridging Govee devices → MQTT → HA. Dropped host networking after discovering Docker's iptables blocks container→host:port without a published port (Traefik couldn't reach a host-net HA). HA needshttp.trusted_proxies: 172.30.1.0/24to stop 400-ing behind Traefik.
Jay's Notes: I'm happy that my govee lights are up and one thing that was not included in this is that I started getting the automations figured out with HA so that my lights turn on/off with sunrise/sunset (to imitate the natural light it would get). I want to do more specific automations.
- ytdl-sub bot-gate handling shipped. YouTube's "confirm you're not a bot" gate now has a real story: rate-limit presets in
config.yaml, a wrapperscripts/ytdl-sub/run.shthat classifies failures and pushes metrics to Pushgateway, a circuit breaker that SIGTERMs ytdl-sub on the first bot-gate line, Prometheus alerts, and a Grafana dashboard (UIDytdl-sub). Cookies remain off the table per policy; PO-token-provider sidecar is the next move if throttling isn't enough.
Jay's Notes: Bot Gate is real and YouTube absolutely doesn't want you downloading things. That said their UI sucks and is meant to keep you there as long as possible.
That said it's not working so instead I want to pivot. Instead of downloading all the videos I just want to check for new videos that I can then choose what to watch. This is where Wytchr comes in.
- Wytchr has replaced Pinchflat. Click-to-download UI now sits on top of ytdl-sub-api; Pinchflat compose is gone (Phase 4.9).
I've all but given up on downloading which means that ersatz may also be DOA.
ManyFold is a thing
I just spun up a manyfold service
Things that AI Forgot to include
Movement to justfile on many commands
I'm doing zellij plugin things
Meet BSE (Bombastic Side-Eye) The Glance Compatible TUI
I really do like glance but sometimes I just want to do a thing that is
Smaller wins
- Glance dashboard segmented. One file per widget under
configs/glance/widgets/, glued via$include. Auto-reloads. Added ytdl-sub recent-runs widget that surfaces the cron schedule + a Braves widget. - AutoKuma HTTP monitor labels added across services — Kuma now picks up new services automatically from compose labels.
- Restic systemd hardening. Switched from
EnvironmentFile=to sourcing the env file inside the script (cleaner failure mode when the env file is missing/misowned). - Grafana datasource UIDs pinned (
prometheus/loki) so dashboards stop breaking on re-provision.
In flight / next
- Phase 4.8 SearXNG, Phase 4 service-status registry, Phase 5 1Password migration — runbooks drafted, not yet shipped.
- Still TODO from Phase 4: Papra, job-crawler, Zima-side exporters, Immich proxy route.