This is the start of a long overdue blog series to show you my homelab after the Pi day of 2021. But first, why do I need my homelab? Aside from the fun and excitement of building an entire server cluster on your own, it has a number of benefits:
- Self-hosting all the applications you need, so that your data is kept private and you can retain full control.
- Cheap alternative to other paid web services of cloud providers.
- Learn new technologies and possibly land a new software engineering job!
- Connect with enthusiasts from all around the world. Reddit has dedicate communities for homelab and selfhosted
My choice of homelab hardware:
- A Raspberry Pi cluster with 4 Model Bs, check out my previous post here.
- A QNAP NAS with 8TB storage.
- A Lenovo ThinkCenter M75q Gen 2 with AMD Ryzen 3 4350GE, 16GB RAM and 256GB NVMe SSD.
On my RPi cluster I have set up a k3s cluster that hosts most of my applications, including a pihole instance. My NAS is the primary storage for home surveillance camera footage. Although the surveillance cameras come with free cloud storage and remote feed, I just don’t trust them at all. There have been so many cases of hacking these cameras, so I have decided to create a system myself that grabs footage to store within the confines of my house, as well as opening up a private portal to view live feed. More on that later.
The Lenovo ThinkCenter is a late addition. My homelab started with just the RPi cluster, but soon I have found that if it goes down, my home network will go dark, as there was just one pihole instance. Time to add redundancy! And this time I have decided to get a beefier machine as I also want to self host a gitlab instance for all my homelab projects. So here is the summary of all the applications I have got in my homelab and I will go through them in future blog posts:
- Two pihole instances, one on the RPi cluster and another on the Lenovo ThinkCenter running a Ubuntu VM with Hyper-V
- A gitlab instance
- My blog
- Home surveillance capture system and private viewing portal
- A single page app that records feeding and diaper changes for my new born daughter 👶
- Grafana and prometheus stack for k3s cluster monitoring
- Traefik for ingress routing and TLS termination
- Simple script to update my public IP at cloudflare DNS every 15 minutes.
- Matrix server