Ten browser tabs and one head: my homelab in August 2026
In August 2026 my homelab ran the house. The hardware was modest: a NAS, a Raspberry Pi, a router, a small VM in Oracle Cloud and a shared web host. On top of it sat Home Assistant, file sync for the family, single sign-on, a password vault and about seventeen ESP boards wired into the boiler room, the floor heating, the air conditioners and the gate.
I had configured all of it by hand, in about ten web UIs. None of it was in a repository. This is the map I drew of that state.
Ten tabs
DNS, the tunnels and the login screen in front of my admin panels lived in the Cloudflare dashboard. The VPN rules lived in the Tailscale console, the Docker stacks in three Portainer instances, the automations in Home Assistant, the local DNS entries in the router and the website in the hosting panel. Every one of these tools did its job. None of them showed how the pieces depended on each other, and there was no other place where that was written down.
Firmware in a browser
The yellow band needs a word if you have never met ESPHome. The boiler controller, the floor-heating valves, the air conditioners, the gate and the water meter are cheap ESP32/ESP8266 boards. I write almost no code for them. Each board is described in a short YAML file (“this pin is a relay, that one reads a temperature sensor, report everything to Home Assistant”), and ESPHome compiles that description into firmware and updates the board over Wi-Fi. That is Firmware-as-Config: the whole behaviour of a device in a text file you could version, review and rebuild. Mine lived in a browser editor on the NAS, with no history and no copy anywhere else, so I had the file and none of what makes it worth having.
One box
Over the years most of the services had ended up on the NAS: the reverse proxy, Home Assistant, file sync, single sign-on, the Wi-Fi controller, filtered DNS, the VPN route, the alert channel and the backup. That is the red frame on the map. I can defend each of those decisions on its own. Taken together, they meant that one failed power supply or one bad vendor update took down most of the house, not just the storage.
Four dependencies nobody wrote down
The red dashed lines are dependencies that existed only in my memory. Four of them mattered most.
1. Alerts. A failed backup reached my phone through a push service and Home Assistant, all running on the NAS. If the NAS died, the alert died with it, and silence looked the same as “all good”.
2. Name resolution. The NAS answered DNS for the house and routed the home subnet for the VPN. When it was down, devices lost more than the services that ran on it.
3. Backup. The backup disk sat inside the NAS. A dead disk controller would take the data and its only copy at the same time. Every night the job reported OK.
4. The map itself. The only complete picture was in my head. There was no history to check what changed before something broke, nobody else in the house could fix anything, and neither could an AI agent.
Beyond my house
Many environments I have seen grow the same way: built step by step, each decision sensible when it was made, configuration spread across admin consoles and the full picture in one or two heads. During an outage a list of servers does not help much. A map of what depends on what does. An AI agent that is supposed to operate such an environment needs that map more than any person does, because it has never been inside anyone’s head.