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:

  1. Self-hosting all the applications you need, so that your data is kept private and you can retain full control.
  2. Cheap alternative to other paid web services of cloud providers.
  3. Learn new technologies and possibly land a new software engineering job!
  4. Connect with enthusiasts from all around the world. Reddit has dedicate communities for homelab and selfhosted

My choice of homelab hardware:

  1. A Raspberry Pi cluster with 4 Model Bs, check out my previous post here.
  2. A QNAP NAS with 8TB storage.
  3. 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:

  1. Two pihole instances, one on the RPi cluster and another on the Lenovo ThinkCenter running a Ubuntu VM with Hyper-V
  2. A gitlab instance
  3. My blog
  4. Home surveillance capture system and private viewing portal
  5. A single page app that records feeding and diaper changes for my new born daughter 👶
  6. Grafana and prometheus stack for k3s cluster monitoring
  7. Traefik for ingress routing and TLS termination
  8. Simple script to update my public IP at cloudflare DNS every 15 minutes.
  9. Matrix server