Documenting my current home server setup. I threw this together using some older, slightly compromised hardware, but it’s handling everything surprisingly well for over 1.5 years now. Keeping this log here for my own reference.
The Hardware
- Motherboard: ASUS H81M-C
- CPU: Intel Core i3-4150 @ 3.50GHz
- RAM: 8GB DDR3 1600 MHz (Samsung M378B1G73BH0-CK0)
- Storage: 3x 4TB Seagate Ironwolf NAS drives
The constraints
One of the DIMM slots on the board is totally dead. This means no dual-channel memory, and I’m hard-capped at an 8GB maximum.
Power was also an issue. The older PSU only had two SATA power connectors, but I needed to spin up three drives. I had to tap into the available Molex connectors using a Molex-to-SATA adapter. Note: Never buy injection-molded Molex adapters. They are a massive fire hazard. Always buy the crimped ones.
OS and File System
I’m running OpenMediaVault (OMV) as the base OS.
For the file system, I went with BTRFS. I initially looked at ZFS, but without ECC RAM, a flipped bit can silently corrupt an entire ZFS pool. Since I’m stuck with standard, non-ECC DDR3 memory. Can’t exactly remember why I went with BTRFS, should have taken a note back then.
I split the storage logically based on how much I care about the data:
- 8TB on RAID 1 (Mirroring - 4TB Effective): This holds the critical data, photos, documents. Note: I should backup this to an external drive, but haven’t gotten around to it yet. Only recently I realized that RAID is not a backup, it’s just a redundancy. Also, if one goes out the probability of the other one failing is higher than usual. If one goes out due to a power surge, the other one might go out too.
- 4TB (No RAID): This is purely for media (movies, music streaming). If the drive dies, it’s an annoyance only, probably can redownload everything in about a couple of weeks. But in the long term, need to backup both separately.
The Services
Surprisingly the setup is comfortably handling a pretty heavy self-hosted stack:
- Jellyfin: Handles concurrent media streaming for 3+ users without any hiccups. I had turned off transcoding initially, direct playing works well with modern client devices. Turned it on recently, didn’t really test it well. I’m using streamyfin as the movie/tv client and manet for music on my phone. For the tv, the official jellyfin client works well. Currently, 481 Movies and 43 TV shows.
- Jellyseerr: Users can request media, which is then automatically downloaded by the *Arr stack.
- *Arr stack: Radarr, Sonarr, Jackett, QBittorrentClient.
- Immich: Photo backup and management. Works great! Stopped using Google Photos.
- NextCloud: Serving as a complete Google Drive replacement.
- WebDAV: NextCloud provides the WebDAV backend for my Zotero integration to sync all my research and PDFs. Zotero is now my go to pdf manager. The annotation tool is much better than even dedicated pdf viewers. It keeps the annotations and the original pdf separately, so there’s no need to upload and download large books when you annotate them.