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:
- Nextcloud - cloud storage and collaboration application
- MariaDB - database for Nextcloud
- Redis - memcache for Nextcloud
- Pi-hole - DNS server
- Traefik - reverse proxy
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 stopsystemd-resolved
from using port 53.