Evolution of a Homelab
This site has been around, in one form or another, since 2019. It didn't start as a personal site or a homelab journal. It started as a learning project, and for most of its life it lived under a different name: pilab.dev.
Looking back at it now, the whole thing was an excuse to teach myself a stack from the ground up.
The Pi Lab era
The original setup was a small cluster of Raspberry Pis sitting on a shelf in my house. One acted as a load balancer, the others served the actual blog. The CMS of choice was Bludit, which I picked specifically because it was a full flat-file CMS with no database. That mattered. On a Pi cluster, "no database" meant no extra service to run, no replication to figure out, and no separate backup story. The whole site was just files, which made it cheap to host on small hardware and surprisingly easy to sync between nodes.
There was a load balancer node, a "primary" web node where I'd make changes in a sandbox copy, and a hand-rolled bash script that would push those changes out to the other nodes when I was happy with them. NGINX did the routing. Let's Encrypt handled the certificates. Port forwarding from my home router brought traffic in. The number of Pis in rotation changed a few times over the years as I swapped models and reorganized the cluster, but the shape of it stayed the same: a few small computers, each doing a small job. None of it was particularly elegant, but all of it taught me something.
If you want the gory details from that era, the original write-up is still up as an archived post: Pi Lab Setup. I left it as-is on purpose. It's a snapshot of what I was working on and what I was learning at the time, and rewriting it would erase that.
What I really got out of Pi Lab wasn't the cluster itself. It was the comfort. The first time you SSH into a node, copy a config, restart NGINX, and watch your site stay up because the other nodes are still in rotation, something clicks. Infrastructure stops feeling like a thing other people do.
Why the name changed
For years, the site was pilab.dev because that's what it was about: a Pi-powered lab. But the projects I wanted to write about kept drifting outside that scope. Media servers, terminal tools, documentation experiments, things that had nothing to do with Raspberry Pis. The name had become a smaller box than the content it was holding.
So the site moved to jereme.dev. Same writing, same archives, same general purpose, just with a name that didn't put the focus on a single piece of hardware. The Pi Lab posts are still there, just filed under "Archived" where they belong.
Where it lives now
The current setup is, on paper, a lot more complicated than a few Pis on a shelf. In practice, it's significantly easier to live with.
The site now runs in Coolify, which is a self-hosted platform for deploying apps. Coolify itself runs in Docker, inside a virtual machine, on a TrueNAS box. Where the old setup was a handful of small computers each doing a small job, the new setup is one capable machine running a stack of layered tools that each do their job well.
If you're curious about the specifics, the full breakdown lives at jereme.dev/homelab-specs. That page is generated by another project of mine, homelab.md.
The practical difference, day to day, is enormous. Pushing a change used to involve a sandbox node, a bash script, and a quiet hope that nothing went sideways during the rsync. Now it's a Git push and Coolify handles the rest. The redundancy that I was hand-stitching with NGINX and load balancing is now just a property of the platform. The hardware I was babysitting is now a single VM I almost never think about.
Still on Bludit
One thing that didn't change is the CMS. The site is still running Bludit, the same flat-file CMS I started with back in 2019. I've looked at alternatives over the years, but Bludit keeps doing what I want it to do, and there's a certain satisfaction in still using the same tool that started this whole thing.
What did change is how I work with it. In production, the Bludit admin panel is locked down and isn't reachable from outside my local network at all. I don't draft or publish from the live site. Instead, I run a full local copy using another project of mine, Bludit Vagrant, which spins up a fresh Bludit install in a virtual machine with a single command. I write and edit there, and only the finished result ever touches production.
That setup gives me the editing experience of a hosted CMS with the security profile of a static site.
What stayed the same
The thing I want to be careful not to lose, even as the stack got nicer, is the spirit of the original site. Pi Lab existed because I wanted to learn by doing, and because writing about what I was doing forced me to understand it well enough to explain it. That's still the entire point.
The hardware changed. The name changed. The platform under the hood changed several times over. But the loop, build something, run it at home, write about it, is still the same loop. It just runs on better infrastructure now.
If you've been around since the pilab.dev days, thanks for sticking around. And if you're new, welcome. There's plenty more on the way.
Links
- The original Pi Lab write-up (archived): jereme.dev/pi-lab-setup
- Current homelab specs: jereme.dev/homelab
- Bludit Vagrant for local development: jereme.dev/bludit-vagrant