My Homelab Server

Having used a Synology 1618+ NAS for over four years, I've gained valuable insight into self-hosting topics such as Docker, Reverse Proxies, DNS, managing things via CLI, backups and local networks. After a while there were things starting to bother me more and more, such as the ridiculously underpowered CPU (an Atom C3538) and Synology's drive politics as a company, especially when it comes to SSD cache drives.

I wanted to take more control and to get more computing power. However, electricity costs had started to rise in Europe by the end of 2021, especially here in Germany. Russia invading Ukraine further drove electricity costs up, so general hardware costs and energy consumption were a key factor building my home server. Intel lacking proper ECC support for reasonably priced CPUs and chipsets made my decision for an AMD system pretty easy. However, I was still enviously watching Intel 10W idle systems presented by other homelabers on YouTube.

Finding the right system

So ECC-support was an important factor for me, as I try to achieve a sustainable server system. I found AMDs Ryzen Pro series with official ECC-support very interesting, as they were reasonably priced and offered enough headroom for various hosting demands.

The central aspects of self-hosting for me were: 

  • media hosting via Plex
  • cloud hosting via Nextcloud
  • password manager hosting via Bitwarden (Vaultwarden)
  • home DNS via Pi-hole
  • document management via Paperless-ngx
  • smartphone photo uploads via Immich

I had no need of hardware transcoding in Plex. However, AMD support had really improved in the past and the CPU of my choice would offer integrated graphics so that I still had the possibility. All our media devices (iPhones, iPads, Apple TVs) can play HVEC/H.265 files and my home fibre connection would offer enough speed to even stream 4K on the go as well. For everything else, my client app Infuse offers downloading files in advance and offline playback.

Hardware

I went with the following hardware:

CaseFractal Design Define 7 XL
Case fans4x Noctua NF-A14 PWM 140 mm
PSUbe quiet! Pure Power 12 M (550 W)
CPU coolerNoctua NH-U14S
CPUAMD Ryzen 7 PRO 4750G
MainboardASRock B550 Taichi
RAM2x Kingston Server Premier DIMM 32GB, DDR4-3200 (ECC)
SSDs (Cache pool)2x Samsung 980 Pro 1 TB
Parity HDDs2x Western Digital Whites 18 TB (shucked external drives)
Data HDDs

2x Seagate Exos X18

1x Western Digital Whites 14 TB (shucked external drive)

This hardware was reasonably priced, as I also needed two 18 TB drives to move all my files from my existing Synology NAS. In hindsight, I would probaby go with an ITX 6-HDD-bay system instead as I don't plan on adding too many drives to my server due to energy costs.

I built another ITX Unraid backup system to place at my in-laws to which I added my old 6 TB and 8 TB drives.

OS

Synology Hybrid Raid (SHR) made it very easy for me to continuously grow my NAS storage with my needs, allowing me to mix various drive sizes. This also meant that I wouldn't be able to start anew with a traditional RAID 5 configuration, as I was using shucked 6 TB, 8 TB, 14 TB and 18 TB drives. 

This and the fact that I wanted a stable solution with a GUI, made it easy to choose Unraid. Unraid also offers to mix drives, offers a variety of GUI options, a community app store making Docker hosting pretty easy, a good Cache framework and a speedy OS running in the server's RAM.

I was able to start with my two new 18 TB drives, move over all my data, format the old 18 TB and one of the two 14 TB drives and add them to the HDD Array. I chose XFS for the file system.
Besides that, I built a mirrored cache with 1 TB of storage, allowing me to run all my docker containers exclusively on my Cache pool. This was the my main complaint with my Synology NAS, where I had to run everything off my HDDs.

Backup strategy

Backups are important but expensive. So I had to find a way to backup all essential data at different locations. I rent a Hetzner storage box with 5 TB to backup everything except for my Plex media files.

Additionally I used the money I got off selling my Synology NAS to build a small ITX NAS that stays with my in-laws. For both I use Kopia so backup all files locally encrypted. I transfer everything to my Hetzner Storage Box via SFTP and to my Backup server via Wireguard VPN and SFTP. 

In addition to remote server backups I was thinking about buying an external Bluray drive to backup some static folders (e.g. old photos, Paperless-ngx snapshots, etc.) on M-discs stored at my mother's place.

Another topic is energy backup. I run an Eaton Ellipse ECO UPS which gives the server enough time to shut down properly, when there is a power outage.

Energy consumption

I regularly monitor my server's energy consumption. At idle it uses 30W, each HDD adds around 4-5W. The maximum wattage was 170 Watts after boot, when all the docker containers are started. 

I plan on installing a Balkonkraftwerk (balcony power station), which is a small (up to 800W) photovoltaic solution, directly feeding into my flat's electrical circuit to power my server during the day. Parity checks, which let my server use around 60W for almost two days, will then scheduled in increments between 10 am and 3 pm instead of in one go to further limit my server's energy consumption.