A mixture of curiosity, annoyance, and frustration – the negligent stepmother of invention. I have a large media collection of music, books, photos, etc. I usually want to be able to share this with my family and friends, but every vendor seems to want to make this as aggravating as possible. What’s more, it’s immensely irritating having a file on my PC but not my phone, and vice versa. Running my own server provides a lesson in Linux administration, as well as removes a large pain point in my life. I hope it also provides some valuable insurance in the form of a backup for pictures and other media.
A Gen 10 HP Enterprise Microserver. It’s a wonderful little device – small, quiet, energy efficient. It has space for 4 3.5” SATA drives, and if you hijack the disc reader SATA port, space for a 5th slim SSD.
I’m using 4 HGST HUA723030ALA640 3TB I bought used for $30 a piece at 46k hours. They’re now at 51k hours according to the smart data. As enterprise drives, they’re expected to run 24⁄7, and their MTBF spec is nearly 2M hours. Even at 0.1 of the spec, my usage of the drives is far from intensive. In practice, I expect to replace these drives for capacity reasons long before they crash.
While I’d love for this to be fancier than it is, I chose Ubuntu Server 20 LTS. It was easy to set up, based on Debian, and has been rock solid thus far.
For storage, I’m using ZFS. This lets me run a pool with two mirrors, each with two drives in it. This provides some basic redundancy – if any one drive fails, the other mirror has a copy of the data and I can simply replace the failed disk with a new drive. However, if two drives fail in separate pools, I’m toast.
I’m using duckdns to link my dynamic home IP to my site. DuckDNS runs a DNS server, I get a duckdns subdomain and simply have a cron job that updates my ip periodically.
Access requires a few ports to be forwarded – in my case, a custom port for ssh, plus 80 and 443 for Nextcloud. (If your ISP is Comcast, buy your own modem!)