The Starlink dish on the roof is held in place by a combination of gravity and optimism. I haven’t figured out the right mounting solution yet: technically, I have the hardware, I just haven’t committed to a location - so for now it sits up there doing its job, which is receiving signal from low Earth orbit, while I do my job, which is occasionally going up and checking it hasn’t blown somewhere inconvenient.
I set it up, I pointed it at the sky, it connected, and then I thought: I have financially supported Elon Musk. This is a thing that is now true about me. It delivers around 100 megabits via a rectangular white device that looks like something from a near-future film where the future is slightly less exciting than promised. The internet connection is excellent. The mounting situation is provisional.
This is more or less the management philosophy of the entire house.
Come in through the roof, conceptually, and work your way down.
Down from the roof, through the ceiling, into the room with the rack.
The homelab is a Proxmox cluster - three servers, a switch, cables organized in a way that made sense when I ran them, and now just are. Proxmox manages virtual machines and containers across the nodes; in practice, this means I have a lot of computing I can account for and a smaller amount I have slightly lost track of.
One of the nodes hosts a collection of agents. OpenClaw - the one that all the hype started from. NanoClaw, which is lighter. OpenFang, an autonomous agent OS built in Rust, running what it calls “Hands”: scheduled processes that build knowledge graphs and report back. Hermes, the one I love the most. Paperclip, for reasons I don’t need to explain here. A few others.
At some point, I made a Discord channel so the agents could communicate. I thought this was funny. It is still funny. They don’t actually communicate in any meaningful sense — the channel has log output, the occasional status message, and the ambient noise of processes reporting that they ran and found nothing notable. But the channel exists, and sometimes I read it, and it feels like checking in on a very quiet office where everyone is doing their job, and no one needs anything from me.
This is the best-case scenario for infrastructure. It doesn’t always look like this. Home Assistant runs on another box. It knows about the lights, the sensors, the heating, the Govee lights everywhere that are, in principle, controllable via an app, via a voice assistant, via automations, via the web interface. In practice, they occasionally decide to do something else: wrong color, crazy brightness, lights that should be off that are on, lights that should be on that aren’t. Not often. Just enough to remind you that the house has opinions.
The segmentation on this network is real. VLANs, firewall rules, and isolated subnets for IoT devices. I know what’s on each segment. I have opinions about what should be allowed to talk to what.
None of this segmentation was designed to contain the agents. They have internet access. They need it to do anything useful. I built the walls, and then I cut doors in all of them, which is architecturally coherent if you accept that the walls were never really about the agents.
Down from the rack, through the hallway, into the kitchen.
The hob is new - induction, clean, fast. It has a child lock: hold one button for a few seconds and the surface freezes. Nothing responds until you do it again.
The child lock came with the hob. It was designed for a child. My child is nineteen and lives in another country. The feature was not for him — he was already gone when the hob arrived. It was just there, included in the product, a standard safety affordance for a household configuration that no longer describes mine.
The cats, however.
The cats discovered that walking across the hob — it’s warm, it’s smooth, it contains some containers with some food — is an activity worth pursuing regularly. The hob responds to this by doing things: changing temperature, switching zones on or off, occasionally producing a series of beeps that communicate something specific according to the manual and something more general according to the cats, which is that attention has been achieved.
The child lock stops this. You activate it, the cats walk across the surface, nothing happens. A feature built for a nineteen-year-old in another country is now doing its best work against two cats in a kitchen in Central Europe. This is not what the product team intended. It is exactly what the product does. The problem is that the child lock also stops me when I forget it’s on. I go to start the hob, press the zone button, nothing happens, I press it again, nothing happens, I briefly consider whether the hob has broken, I remember the child lock, I deactivate it, I start the hob.
The child lock protects against cats. It does not protect against the adult who lives here.
The child it was designed for would find this very funny.
This is the pattern, if you step back far enough to see it.
The Starlink dish routes around infrastructure I don’t control, which is exactly what I want, but in doing so, it routes through infrastructure I also don’t control, run by someone whose other decisions I find variable. The Home Assistant setup gives me visibility into every device in the house, but visibility is not the same as control, and the Govee lights will occasionally light up magenta at 2 am for reasons that remain undocumented. The OpenFang agents run autonomously on schedules I set, but “running autonomously” and “doing what I intended” are related but distinct conditions. The child lock on the hob stops the cats and also occasionally stops me.
Everything here is a solution to a real problem that creates an adjacent problem that wasn’t fully anticipated. This isn’t a design failure. It’s just what systems do when they interact with the world: they solve the threat they were designed for and create new surface area somewhere else.
The house runs. The Starlink delivers 100 megabits, provisionally secured. The agents check their schedules. The Govee lights are the correct color, currently. The hob is unlocked, for now.
From the outside, it probably looks like infrastructure. From the inside, it looks like negotiation — a continuous set of small decisions about which problems are worth solving, which surfaces are worth defending, and which things you’re just going to let sit on the roof until you figure out the right way to mount them.
The right way to mount the Starlink is probably obvious to someone with more patience for roof work than I have. The cats are asleep on the hob. I’ll figure it out eventually.
In the meantime, gravity and optimism.
