What’s a Homelab?

A homelab is essentially all the hardware and software required to self host useful services, typically free open source software. Running a homelab has two big benefits: 1. a hands-on way to explore and understand IT infrastructure, networking, virtualization, and system administration and 2. choosing self-hosted, open source software over closed source, centralized versions run by profit-driven corporations greatly increases your digital independence and your privacy.

Importance of Hands on Experience with Running a Homelab

Throughout my career, I’ve learned a lot about software: how to architect it, how to write it, test it, monitor it, fix bugs and incidents, configure it, and how to deploy it. However, as someone in more of a developer focused position rather than DevOps, Site Reliability, or System Administration, I naturally didn’t gather the same depth of experience as some of those roles. Running my own homelab server, has made up for that and more. I get to learn how networking works, how to secure production environments, debug issues in software I didn’t write (fun!), and more. This practical experience has significantly broadened my technical skills and deepened my understanding of the full software lifecycle.

Importance of Data Privacy and Independence

In 2024 and beyond, an absurd amount of our life occurs online, for better or worse. With such a significant portion of our life occurring in the digital realm, it’s increasingly important that we maintain as much control over our personal information as possible. Some people take the approach of “I don’t have anything to hide, so it doesn’t matter if corporation have my data”. This is a little misguided, because you might trust a corporation now with your data, but the landscape of data usage and privacy policies can change. Your data could be used in ways you didn’t anticipate or consent to, leading to potential privacy breaches or misuse. Taking steps to safeguard your data is not just about hiding something; it’s about maintaining control over your personal information in an increasingly interconnected world.

My Homelab

General Purpose Server

The server that I currently run most of my services on is the HP Elite Mini 800 G5.

HP Elite Mini 800 G5

It’s a decent server that can be had refurbished for just $150-$250 dollars, depending on configuration and condition. I would highly recommend it for beginners looking for a small form factor that’s also very cheap.

My HP Elite Mini 800 G5 configuration is:

  • Intel(R) Core(TM) i5-9500 CPU @ 3.00GHz with integrated graphics
  • 16 GB RAM
  • 1 TB NVMe SSD for storage

With this I can run the following services with plenty of headroom:

NAS

NAS stands for Network Attached Storage and is commonly used by data hoarders and movie/tv show fanatics alike. I’m currently in the process of building one. My main use-case for my NAS will be:

  • storing raw DJI drone footage
  • storing my phone’s photos and videos with Immich so that I may stop my iCloud subscription.
  • storing lots of ML model weights and datasets for my own training, usage, and experimentation.
  • and finally general data backups e.g. Time Machine

Here’s the planned build, I will update this page after I’ve ordered the parts and built it:

  • Case: JONSBO N4 White Case (6 3.5" Bays and 2 2.5" Bays)
  • CPU: AMD Ryzen 5 7600X 4.7 GHz 6-Core Processor
  • CPU Cooler: Noctua NH-L12S 55.44 CFM CPU Cooler
  • Motherboard: ASRock B650I Lightning Wifi Mini ITX AM5 Motherboard
  • Memory: Corsair Vengeance 32 GB (2 x 16 GB) DDR5-6000 CL30 Memory
  • Storage:
    • Kingston A400 240 GB 2.5" SSD. This will be used as the OS drive.
    • Samsung 870 Evo 2 TB 2.5" SSD
    • Samsung 870 Evo 2 TB 2.5" SSD
    • Samsung 870 Evo 2 TB 2.5" SSD
    • Seagate IronWolf NAS 8 TB 3.5" 7200 RPM HDD
    • Seagate IronWolf NAS 8 TB 3.5" 7200 RPM HDD
    • Seagate IronWolf NAS 8 TB 3.5" 7200 RPM HDD
  • Power Supply: EVGA SuperNOVA 650 GM 650 W 80+ Gold Certified Fully Modular SFX Power Supply
  • Custom: LSI 9300-8i PCI-Express 3.0 SATA / SAS 8-Port SAS3 12Gb/s HBA

I plan to run TrueNAS Scale on this NAS. I’m still figuring out how exactly I want to configure ZFS for all of these drives. I’m thinking that I use the SSDs in their own pool with RaidZ1 for Immich and I will use the HDDs in another pool, also with RaidZ1, for everything else.