7 min read

Homelab: 0 - Initial Design

Table of Contents

Ideas on choosing the hardware for a homelab.


Why the Post and the Series

Lurking /r/homelab and /r/minilab is an unsurprising passtime for people in tech. That said, while the “mini”-labs on Reddit are great to look at, I, personally, found them overwhelming and intimidating. What are all the cables? Why the blinking lights? Why the hell would a “minilab” need what I am only 40% sure is an ethernet switch?

And that’s the birth of this series. I go through my process of building a janky, tiny, awful-to-look-at-but-pretty-capable homelab, walking through everything I do, in way, way too much detail.

A little Bit More: the Tailscale tutorial

In detailed truth, what really got this project going was this absolutely fantastic video series by the folk at Tailscale:

So, You Want to Start Self-Hosting? Part 1 - How to Install Proxmox and Pick Your Hardware

I had given it a watch (with a focus on Tailscale, for myself) and eagerly passed it along to a non-technincal friend who was eager to join me in a homelab journey. They followed it as to-the-T as they could, but had some stumbling blocks. Things that I’d imagine most devs would (and, well, empirically did) take for granted: knowing what vim is, let alone exiting it; CIDR; subnet.

That made me think introspectively about going through tutorials. Putting it bluntly: I’m not that clever. Things need to be very well spelt out to. Taking the long way round, to understand a topic, is generally the only route. Yet, tutorials like that never seem to exist. This series is a labour in over-doing the explanation. Walking through everything. Hopefully taking nothing for granted.

What’s First: what to get out of a homelab?

The driving concern of setup was a consistently terrible experience with Plex on a Raspberry Pi 3. When things lined up, it was okay. The second it tried to transcode anything? Crash. Things weren’t better on a Jetson Nano. Plex also really, really, wants you to pay for it. That wasn’t going to happen, on principle.

So. In rough order of importance:

  1. Self-host a media center (and probably not Plex)
  2. Anything else that could be cool to host
  3. Something AI/ML-related, to work on projects that intrigue me or will help with getting hired

The “cool” things could include, but not be limited to:

  • de-google-ify (e.g. alternatives to gmail, photos, …)
  • self-host databases (cloud offerings are pricey)
  • self-host a blog
  • self-host various apps
  • self-host MLFlow experiment tracker
  • self-host things that I don’t even know about yet

Hardware Requirements

Compiling options got a little involved. But at a cost-conscious tradeoff of what hardware could actually be expected to cap out on, the BOM came to:

ComponentPart(make, model)Price (Approx. USD normalized)Part LinkDescriptionNotes
ComputeHP EliteDesk 800 mini g5188(Ebay: Refurb)256GB NVME & 16 GB installedHP Specs
MemoryIntegral 64GB (2x 32GB) DDR4 RAM 3200MHz SODIMM200-2x32GB DDR4 3200G5 runs 2666MHz, but those sticks are old and hard to find. anything >=2666 will work
Drive Enclosure (DAS)TerraMaster D4-320190TerraMaster-(Consider CAD arbitrage)
Drives4x 4TB Seagate Ironwolf ST4000VN006504--Friend Strongly Suggests 12+TB drives only. Price >1200
UPS???Not yet planned
USB 3.2 Cable3.2 (10GBPS) , USB-IF certification20--DAS requires good quality cable. Don’t trust anything from Amazon to meet USB-C Spec
Network SwitchTP-Link TL-SG10825--Optional for now

Total Cost: ~$1016USD

But!

What’s actually needed from day-0 is just the HPElite (which has enough onboard SSD for an OS and a bit of storage). Plugging in a 3TB external (USB) HDD, with media from said failed Plex server, and this project can (and has) kick(ed) off.

Hardware Overexplained

Compute

Many options exist that could be reasonable. First drafts for the lab focussed on NUCs, including Beelink EQ14 (N150), Beelink SER5 (AMD Ryzen 5), All-in-One NAS systems like the Synology 923+, the NucBox G9, and other mini PCs (Dell Wyze series).

Things required:

  • Can support video transcode
  • USB-C: the Terramaster DAS supports 10GB USB-C 3.2

Things anticipated:

  • Can support >32GB RAM: Running many containers can eat up memory. Lurking around various homelab posts, seeing memory in the hundres of GB hasn’t felt unusual.
  • Not ARM CPU: if time comes for an eGPU my experience for ML tends towards struggling with AMD. Preference. At the scale of this lab, not running >10Bn param LLMs, it shouldn’t be a deal breaker.
  • Option for >2.5GB NIC: High data transfer from DAS to device shouldn’t slow it down.

Memory

Watch out for the form factor required. That is, can only really purchase after the main hardware is decided.

The HPElite g5 is limited to 2 slots and officially only supports up to 64GB.

Becareful buying on Amazon, seeing “32GB! (fineprint: actually 2x16 sticks)” is the standard.

Enclosure

Choosing a Data Attached Storage (DAS) enclosure is surprisingly involved. First, it must be ruled out that a NAS is not the way to go. Due to the limited specs of the Synology 923+ compared to its price point, the conclusion could be drawn.

From there, a drive count needs to be set. More drives, more space, more redundancy, waaay more cost. Also, more energy. This homelab is about effectiveness, but keeping the budget (monetary and energetic) on a short leash.

4 Bays would allow a ZFS setup.

From there, hours of watching reviews on Youtube and cost sealed the deal.

Drives

Little to say here. Physically, the drive requirements are set by the DAS enclosure. In this case 3.5” or 2.5”. 3.5” HDDs will be cheaper per TB. Drive speed, for the anticipated usage is better at 7200 (than 5200), and really that seems standard. Drive capacity is purely a function of cost.

Only strong note is that, for ZFS, all drives will have to be the same capacity.

UPS

Not enough research to comment yet.

Network Switch

Not enough research to comment yet.

But, at a single device, none needed at this time.

Conclusion

For <$250, including the 3TB (basically antique) HDD, a homelab is initiated. The DAS won’t be required until data fidelity/resilency is desired. A bridge to cross as needed.