I have a single-board computer that I use as a home server for my family’s storage needs (and for fun!). The server primarily runs Nextcloud, a self-hosted cloud storage and collaboration platform. It also runs Pi-hole, which acts as a DNS server for our LAN. I sometimes to write about my server on the blog, so check that out if you’re interested in what I’ve been up to lately.

Software

My server runs Armbian’s Ubuntu 20.04 server image, but its various services are all containerized and managed with Docker compose:

I use restic and rclone to run regular backups. This nifty program keeps my DNS records updated since I don’t have a static IP address. And a WireGuard VPN makes it possible for me to connect when I’m away from home.

Storage

The server has two 1 TB hard drives, which act as mirrors under the ZFS file system.

Hardware

The server is a Pine64 ROCKPro64 in a NAS case. It has Pine64’s largest heat sink and a fan for active cooling. Two 1TB Western Digital Red hard drives are connected via a PCI-E to SATA adapter.

Tweaks

  • Armbian’s Ubuntu image is great and for the most part just works – even with the ZFS DKMS module. However, it’s missing any sort of fan control, so I had to figure that out myself with the help of ATS and this forum post. It was a bit complicated for me, so I wrote a blog post with the exact details.

  • By default, systemd-resolved is running on port 53 on Ubuntu. Since I’m using Pi-hole as my DNS server, I need it to be on port 53 instead. This article explains how to stop systemd-resolved from using port 53.