Rebuilding My Homelab with Compose, Ruby, IPv6, and No Kubernetes
Pete Keen
Essays
Stripe
Software
DNS
Finance
Books
Rebuilding My Homelab with Compose, Ruby, IPv6, and No Kubernetes
Last updated 2026-07-10, 7 min read
A little less than a year ago I wrote:
Everything is in shambles.
One machine is dead and probably not coming back.<br>Services are randomly scattered amongst the survivors.<br>My Kubernetes project is kinda-sorta paused.
This post is an addendum to that one, where I'm going to give an overview of what I've settled on, as much as one can settle in a homelab.
To recap a bit, in the previous post I had a bunch of machines that were mashed together into something resembling a coherent cluster:
hypnotoad, crushinator, and a precarious control plane VM running on a thin client
lrrr, an N150 box running Proxmox
nibbler, a piece of shit
Of those four machines, lrrr is the sole survivor.
The Problem of Nibbler
Nibbler, on television, is an adorable little three-eyed dude in Futurama that (courtesy spoiler warning, but 20 years is well past my cutoff) turns out to be a member of a hyperintelligent race of beings that can time travel and who, in fact, is the reason why Fry fell into the cryopod to start with.
nibbler, in my basement, was a machine that I had pinned a lot of hope on. It was a Lenovo M80s Gen3 SFF with an i7-12700 and DDR5 memory, picked up on eBay for what seemed like a steal (foreshadowing).<br>I upgraded the memory to 128GB and the storage to 3TB of NVMe with left over pocket change.<br>I put an HBA in it and hung a disk shelf off of it with seven 16TB drives.<br>It was to be the core server, the one where all the action would happen.
It was, as covered earlier, a piece of shit.
I'm still not quite sure what was wrong, but it was never reliable.<br>Often it would just not come up after a reboot. Once in a while it would just forget about hardware.
On more than one occasion I or my spouse would discover that Jellyfin wouldn't play anything anymore, and I would shuffle down to the basement to attach a monitor and keyboard and discover that the entire storage disk shelf was errored out with inscrutable SAS adapter driver errors in the kernel logs.
Around the time I wrote the previous piece I put together a likely story. The eBay seller knew this machine was bad but they slapped an "eBay Certified Refurbished" label on anyway and sold it for a song to a sucker.<br>By the time I realized this I had modified the machine so extensively I couldn't make a refund claim.
The Problem of Kubernetes
Simultaneous to the nibbler revelations I had another realization: Kubernetes is Too Hard.<br>I built a system that I didn't actually know how to maintain without the time or energy necessary to dig myself out of trouble.<br>When the machine that has more cores and memory than every other machine in the cluster combined decides to self-immolate once or twice a week it puts a huge damper on the whole experiment.
My stop-gap solution was to revert everything important back to the way things were before k8s, which was effectively just docker compose.<br>After letting that bake for a while I decided to just roll with it.
You Know What They Say About Temporary Solutions
It's now July of 2026.
lrrr exists in much the same form as it did before.<br>It's still running Proxmox, but the only virtual things there are one LXC running Omada and one tiny VM that I've been using to ease myself into the agentic lifestyle.<br>I've also done the worst thing imaginable to the Proxmox forum trolls: I've installed Docker on the host to run core services like Home Assistant and friends.
hypnotoad and crushinator are turned off, lying in state until I need them again.
morbo is a new-to-me HP Elitedesk 800 G3 SFF that runs TrueNAS SCALE and whose entire job is to manage storage and stay out of the way and it does a great job. The end.
ord-router is a VM running at a datacenter in Chicago that happens to have direct peering with Comcast. This is the public ingress node.
nibbler is now an amalgamation of old and new parts: same memory, same storage, new gamer-style case and motherboard and processor (Ryzen 9 9900X). It also recently gained an RTX 5060ti 16GB video card for local LLM experiments.<br>This is the "everything else" machine. Everything that isn't critical to the house functioning as a house and the network as a network runs here.
Among other things, nibbler is where Forgejo, Minecraft, and Jellyfin and friends live, along with a bunch of other random crap.
There are also a handful of Raspberry Pi-class devices scattered around that are also deployed with this system, but they do appliance-type things: house-pi runs a Z-Wave stick and shed-pi is where the ADS-B receivers are plugged in.
Docker Compose with Extra Steps
Quirky? Yeah, let's go with quirky.
The software stack that deploys the homelab is arranged like this:
a bunch of spicy docker compose stacks
a handful of Ruby libraries that implement the spice
a...