My Foray into the world of homelabbing

May 27, 2024 (3mo ago)

Cover Image for My Foray into the world of homelabbing

I've recently gotten in to self hosting a lot of my own services. And it has been extremely satisfying. I would highly recommend it to anyone who is curious and wants to tinker a bit.

According to the Linux Handbook website, a homelab is the following:

the name given to a server (or multiple server setup) that resides locally in your home and where you host several applications and virtualized systems for testing and developing or for home and functional usage.

Building a homelab will teach you networking, linux server management, and if you're unlucky like me, the importance of backups.

It's actually been surprisingly fun, albeit frustrating at times. But I would definitely do it all over again!

How I got started

When I was younger, I wanted to help my parents clean up their massive DVD collection and help them digitize it.

So many of our discs were scratched, and the collection took up a massive amount of space.

I found some lifehacker articles about plex, and that seemed like the perfect fit. I don't advocate for piracy, so I wasn't doing all this for the ability to steal, I simply wanted to throw away the DVDs that took up so much space and put it all on a hard drive.

I ripped almost all the DVDs using handbrake, and stored them on a hard drive. The ones that were too scratched, I obtained through alternate means, and yes I feel that this is fully within my rights as my parents bought the DVD. Then, I began hosting them with plex.

This worked super well for the past 10 years. The movies were instantly watchable on our TV through an easy app. My technical unsavvy family was even able to continue watching their movies seamlessly.

More legitimate concerns

As I grew up, I've become much more passionate about privacy. So I decided to look into "self-hosting" some services that were important to me. I'm sick of paying google to store my photos, and allowing them to see all of my photos, and potentially do unwanted things with them (machine learning model training, etc.).

I didn't go big all at once, I just started hosting a couple of services at a time. And today, I've got most of my things I want self-host working as I want.

My current goals are to host

  • a google drive replacement (nextcloud)
  • a google photos replacement (immich)
  • an instagram where I own my photos (pixel-fed) (haven't done this one yet)
  • and a couple nice to haves (mealie for recipe management, homebox for a home inventory system, jellyfin for some hardware accelerated transcoding plex).

My New Server

I had been running the plex server on my parents computer (and critically, using their electricity) for the past 10 years.

But when it was time to host some services at my own apartment, electricity became a much bigger issue. It's much more expensive here in the UK than it is where my parents live. So rather than leave my gaming PC on 24/7, I bought a small little N100 mini PC from aliexpress, threw 16GB of RAM in and a 4TB NVMe drive, and my low power homelab was ready!

I haven't measured it at the wall, but I believe it's drawing less than 20 watts (compared to my multi-hundred watt gaming PC).

Hybrid Cloud

I also am running 3 nodes in the cloud. I am using the oracle free tier and have not yet paid even a single cent. I'm sure this won't last forever, so I'm prepared to take things fully on my home node, but it's nice while it's available.

It only runs a couple of services that aren't private. I would be totally fine if they were compromised (not that I'm particularly worried about this).

Software

My entire homelab is open source, so if you just want to see the code, check it out there.

The big things I am running are the following:

Core

Monitoring

Services

My Favorite Resources

Conclusion

I'll write much more about it (because this is my primary hobby right now). But suffice it to say that I am enjoying this a lot. And I'm learning so much.

My biggest takeaways so far are that you need to keep configuration in git. I tried a couple of setups that I fully ruined accidentally and then had to setup again.

That's why I put my docker-compose.yml in git, rather than using portainer to manage it. And definitely not just docker run commands.

It's been fun so far, and I haven't even really started to use it. But I'm getting close to taking back my privacy and having more control over the services that I use.