Phase 2

Hardware

Prerequisite: Foundation

Choosing the appropriate hardware based on what software you plan to self-host is the first critical step in your self-hosting journey.

This guide covers quite a bit of ground, but at the same time, it also only just scratches the surface - there are a ton of self-hostable services out there that you can run, so don’t feel like you have to do everything listed here all at once.

For example, if you just want to start out with setting up:

  • Navidrome music server to replace Spotify
  • FileBrowser for storing a few gigabytes of files to replace Google Drive
  • Paperless-ngx for backing up important documents with automatic OCR

Then you could technically get away with something as small and cheap as a Raspberry Pi with 4GB RAM and a 64GB microSD card, though it wouldn’t necessarily be my first choice.

If you want to do a bit more with your server in addition to the above, like:

  • Streaming your movies and TV libraries with Jellyfin
  • Automating your music/movies/TV library management with Sonarr/Radarr/Lidarr
  • Automatically backing up photos and videos from your phone using Immich
  • Running a Minecraft server for you and your friends using Crafty

Then you would probably want to step up to something like this mini PC with a 4-core CPU and 16GB RAM, or maybe even this mini PC with an 8-core CPU and 24GB RAM.

To run everything in this guide (and more), along with terabytes of storage capacity, you’ll likely want to repurpose a desktop PC as a server so that you can take advantage of multiple 3.5" SATA hard drives for large storage capacity, along with a dedicated GPU if needed for hardware acceleration for other tasks.

This guide uses the above setup as the default so we can cover the most configuration scenarios, but if you’re using a mini PC or a smaller build, you can skip or adapt the steps that don’t apply. I’ll note those cases throughout.

Below is a quick-and-dirty separation of performance tiers based on workload:

A) Starter (experimenting with a few services):
  • CPU: 4-8 cores
  • RAM: 8GB (16GB if you can)
  • Storage: 500GB - 1TB SSD
B) Media + Automation:
  • CPU: 6-12 cores + integrated GPU
  • RAM: 16GB (32GB if you can)
  • Storage: 500GB - 1TB NVMe SSD + HDD for media
C) The “Everything” Build:
  • CPU: 8-16 cores
  • GPU: Integrated OR dedicated (NVIDIA RTX w/ high VRAM if you want to run local AI models)
  • RAM: 32GB (64GB if you can)
  • Storage: 1 - 2 TB NVMe SSD + 2-8 HDDs for redundancy

Storage Strategy

If building with multiple HDDs, plan your HDD storage pool with redundancy in mind:

  • 2 hard drives → ZFS mirror
  • 3-5 hard drives → RAIDZ1
  • 6+ hard drives → RAIDZ2

“Pool? ZFS? RAIDZ?” - Don’t worry, we will dive more into this when we get around to setting up TrueNAS later on. Just be aware that a smaller pool of large-capacity drives will be slower and less resilient than a larger pool of smaller-capacity drives, but a 2-drive mirror is still okay.

Also, avoid SMR (Shingled Magnetic Recording) hard drives. Use CMR (Conventional Magnetic Recording) hard drives instead, and ensure they are 7200RPM (not 5400RPM) 3.5" SATA hard drives, ideally rated for NAS scenarios. I personally recommend Seagate’s IronWolf Pro NAS drives.

CMR uses separate tracks for faster, reliable writes (ideal for your NAS), while SMR overlaps tracks like shingles to increase capacity but has a massive negative impact on speed and latency.

Rackmount

If you want to go crazy and build something with hot-swap hard drive bays and actual enterprise-grade server components with all the blinky lights, used rackmount servers can be found on eBay for attractive prices, but expect more noise and higher power consumption.

BEWARE: Owning a rack comes with risks - if you have empty space in your rack, you will find yourself browsing eBay at 3:00am looking for stuff to put in it.