You are about to witness this blog’s first rant. Proceed with caution, or not at all if you’re so inclined.

Without further ado: Piss off. No, I don’t need this many machines. I want this many physical machines. Every single one of them was a very conscious decision driven by a clear design goal. Is your standard reaction to somebody excitedly telling you about their newest hobby toy really “do you need this much of your hobby?” or “but it costs so much!”? My fucking goodness.

/rant

Sorry, that needed to be said after I made the mistake of telling certain people in my life about my newest Homelab plans for the umpteenth time, and I was getting the same tired old “What do you need all these computers for?” and “Aren’t there better things to spend your money on?” questions again. And because I’m rather the non-confrontational type in my private life, you now got the above rant, instead of the person who triggered it. Don’t worry, if you can read and understand the above, you’re not the target. 🙂

But I also want to take this chance not just to rant, but also to talk about the homelabbing community and homelabbing as a hobby.

Over the years, I’ve read a lot about people’s motivations. From what I saw, there are three very general categories:

  1. The people who got into it to hone their skills, e.g. with a small kubernetes cluster
  2. The people who got into it just for the fun of it
  3. The people who got into it for ideological reasons, e.g. owning your own data or getting away from the large web giants

I came into it mostly from category two and a bit from category three. Let’s start with category three motivation: I don’t really have an ideology here - you will certainly see me encouraging people to try out homelabbing and selfhosting things like Mastodon - if they feel up to it. But you won’t see me arguing for the more militant “everybody should selfhost everything!” stance that the more radical category three people argue.

So for me, it’s mostly just: Fun! My original trigger was a bit of “every real CS student should have a homeserver!” thinking. And yes, I’m now a bit embarrassed about that. 😉 I’m definitely not in category one. I’m a software engineer by training, and I’m currently responsible for turning code into binaries in a large scale project. If I really wanted to go looking for it, I might argue that homelabbing taught me something about debugging approaches. And especially that “breadth first” instead of depth first approach to debugging often leads to faster results. But at work, I’m in the enviable position to have an entire, rather competent team who runs any workloads on any given one of a dozen or so Kubernetes clusters. I don’t think I ever needed to use any Homelab knowledge at work. That is not to say I didn’t have fun learning about networking, Ceph storage clusters, Docker and so on. But it wasn’t the main motivation. The main motivation was always “running services to use”. And having fun while doing it. And yes, sometimes that fun for me comes from doing “it” in the most complex, totally overblown way that still looks maintainable. 🤓

I’ve been homelabbing since somewhere in the early 2010’s. Only in the pandemic years did I actually realize that there’s a community around the hobby. And at least from my PoV, it’s a nice one. Take r/selfhosted as an example. What has surprised me the most over the round about two years I’ve been reading there is that the gatekeeping is rather minimal. There’s no “Any real homelabber doesn’t start below a dual Xeon machine”. In fact, most of the time when people are asking about good starter machines, the advice is pretty solid: Either get a Raspberry Pi board (not too easy at the moment…) or go and buy one of those corporate office machines from ebay for a couple hundred bucks. Nobody there cares whether you’ve got a 25U rack or a Pi. Even VMs in the cloud are accepted there. Albeit that might look a bit different in r/homelab.

I’ve now also found a very nice community on Mastodon talking about Homelabbing and selfhosting pretty much the entire day. Pretty much my people. 🤓

So what IS homelabbing?

I think the best definition I ever read for homelabbing is this:

Cosplaying as a sysadmin

And whether you’re doing it with a Raspberry Pi or an entire rack full of servers really doesn’t matter. There’s also selfhosting. I think that is pretty similar, and most of the time I use the two terms interchangeably. The difference might be that a homelabber might be cosplaying as a sysadmin, while a selfhoster might be cosplaying as a DevOps engineer. And yes, the fact that that’s pretty much the same today is exactly what I meant to convey. 😉

To me, the first attempts at homelabbing came from a simple need: My laptop ran out of space for all the Linux ISOs. And instead of going the simple route and buying an external HDD, I got myself a tower server and deployed Samba and Subversion on it. These days, I’m in the process of migrating to a server rack. As mentioned at the very beginning: Do I need this many machines? Nah. It’s a bit like coffee and cigarettes: I might not need them, but without them I’m going to become rather cranky. And it’s the same with the Homelab.

So this is one of the reasons why you might want a Homelab: You just feel a need, and instead of fulfilling it the sensible way, you get yourself another computer.

Bam. Homelabbing.

And once you’ve deployed your first service, the next question almost inevitably is: What else could I do with this? And it turns out that there’s a lot you can do with a single always on machine. By now, I’m running my own cloud storage, my own code forge, my very own storage cluster and a lot of other things. When I recently got into IoT with a couple of smart plugs, I was confident that I could use them without having to rely on some external cloud - I already had a full stack available to run the MQTT broker, data gathering and visualization.

I like to call my own Homelab “HomeProd”, a bit tongue-in-cheek. Today, I rely on having the services it provides available all day long. And it’s nice to have them. It’s nice to be able to just upload stuff from any place, and be able to access it from any other place, without having to go via a cloud provider. (Okay, perhaps I’m a little bit in the ideological category. 🤷) I’m running my own social media, after all. But that has also changed the direction of my Homelab a little bit. I was never too far out on the “homeLAB” side of things. But since I started running my own Mastodon instance and this blog, I started to have other people (somewhat) rely on my Homelab. Even if it’s just the thought of adding to other Mastodon admin’s server load by forcing them to retry delivery against my downed server a couple of times. So downtimes became more and more unacceptable. I started to get really annoyed at those times where I had to take my Homelab down, either to reconfigure networking or reboot a host. Hence my quest to make my Homelab more highly available. And with that we get back to the rant at the beginning: I’ve got so many hosts because I like to be able to reboot/shutdown/completely screw up a host without taking the entire Homelab down. 🙂

Like with many hobbies, a Homelab can be whatever you want it to be. It can be as large or as small as you feel comfortable with. It can be as critical or as ephemeral as you need it to be. It can be as reliable as AWS, or barely live longer than a Saturday afternoon.

Have fun! And don’t open ports in your firewall unless you are reasonably confident in your abilities. 😉