So, about a year ago, I built an Home Theater PC in order to meet my needs to have a home NAS, a media player, a DVR, a Plex server, and a Steam Box. I used the parts below:
PCPartPicker part list / Price breakdown by merchant
Now, I’ve tinkered with this here and there over the past year, and I’ve never been satisfied with the system. I’ve loaded various flavors of Linux since it provided me the ability to run the WD HDDs in RAID5 via mdadm. I started with Linux Mint, then switched to Proxmox, then rolled my own flavor of Ubuntu Server, and then Lubuntu. None of them worked, and for a while I thought it was because I just hadn’t found the right operating system but I had an epiphany recently, and that was that I was trying to do too much with one box. For starters, the case is just too damn small to fit a full ATX power supply, 6 drives, a full-sized graphics card, and all of the associated cables. Secondly, the processor isn’t powerful enough nor does it have enough cores to properly handle virtualization which would make hosting all of the services I was asking of it far easier. And finally, the OS just couldn’t hold up well to the multitude of tasks being thrown at it; I kept having to hack things together and it just never worked well.
So, faced with that realization, I decided to split my original HTPC into two separate computers: a NAS which can host Plex and other services and an actual HTPC which can play media and run Steam. I loaded Xubuntu on an old dual-core laptop and installed Steam and Kodi, and now I stream games and movies to it. I then took my original build, stripped out the GPU, and installed OpenMediaVault on it. I tried to install the version 2.1 which is stable but is built on an old version of Debian that had many issues with my hardware. Next I tried to install the beta version of 3.0 and it worked like a charm.
I then installed the extras repository so I could install Docker, Plex, SnapRAID, and mergerfs. I also decided to forego a standard RAID array for my storage and use SnapRAID to calculate disk parity and mergerfs to pool my data drives together. I drew my inspiration from this article on LinuxServer.io. This set up will allow my drives to remain idle until they are needed which saves wear and tear on the drives and electricity. Also, it allows me to use different-sized drives and provides the most flexibility for growing the pool. I looked into using LVM instead of mergerfs, since it allows me to make snapshots and I’m a fan of LVM, but I couldn’t find a solid guide for doing it and was wary about the possibility of data loss if I did it wrong. So I went with what I knew worked.
I’m still setting the system up, but I’m very happy with it so far. The WebGUI is excellent and I really like the Docker integration. I ordered some more hard drives and a SAS/SATA expander card. I’ll provide an update when I install them.