My Pet NAS

Published on
· 4 min read
Author

I got into a frivolous hobby as an escape from the routine feature flipping and AI duckfeeding at work.

At first I got a Raspberry Pi as a low stakes way to learn Linux things, but one thing led to another, and now I have a NAS, an ad-blocking DNS sinkhole, and a Linux server on my home network (blogs tbd).

Physical electronics was always intimidating to me, so I set myself the smallest goal of just using it for image storage and backup in order to wean off 3+ subscriptions for cloud storage.

Unlike software, hardware choices aren’t easily reversible. There seemed to be 6 times the decisions to make compared to shopping for an ergo keyboard.

I probably spent 6 months reading up on whether to:

  • build my own Raspberry Pi NAS with 2 hard drives or buying a sexy NAS enclosure that would work right off the shelf with a .1
  • which RAID configuration to use on the setup
  • which filesystem format the hard drives (the moral question of whether to format the nas and storage partitions with btrfs, ext4, or zfs)
  • the 3-2-1 backup strategy for the setup
Work-in-progress photo of the Geekworm NASPi Gemini 3.5 Dual 3.5" SATA HDD NAS Storage enclosure without its cover and 2 hard disk drives installedMy nas console login welcome message with cowsay dragon listing all IPs

The resultant setup:

Everything cost about ~$1000 CAD and most of it went to hard disks, which I waited til Black Friday to buy from Newegg.

Services I’m running

  • Immich for photo and video storage
  • ufw, ufw-docker and Fail2ban for firewalling and intrusion detection
  • tailscale as a VPN-of-sorts for remote access from outside the home
  • hd-idle to spin down hard disks when they’re not in use
  • Prometheus to monitor system performance
  • Node Exporter to scrape system performance metrics
  • Grafana for fancy dashboards
  • a cron schedule for quarterly disk scrubbing

View of a local Grafana dashboard

It’s beautiful!

What I learned

  • It’s not necessary to have both drives be the same brand or exactly the same storage size and format. I created a RAID 1 partition in btrfs and use the remaining 2TB for file and logstorage.

  • I initially installed a 32-bit OS (debian-bookworm), which Immich didn’t support, so I had to re-image the other card with a 64-bit one.

  • Low power consumption is one of the main perks of single board computers, but one of the drawbacks also when building a NAS like this. I went with the Geekworm enclosure because it had its own power supply so I wouldn’t have to think about how to power 2 separate USB hubs to transfer data to 2 hard drives. Every peripheral consumes power such that plugging an extra tiny USB monitor can cause this setup to run out of memory.

  • Frequently writing to micro SD can cause it to wear out faster so I had to move whatever had a lot of writing activity to the storage partition of the NAS drive, like SWAP ram, logs, and backups for syncthing.

  • It’s better to have a USB key or 2 on hand sooner than later. It’s nice to use as a substitute storage early on but they come in handy for reimaging anything later.

To use cloud or not for offsite backup

A segment of the homelab community seem to prefer keeping things off cloud due to distrust of big tech’s everchanging privacy policies, but according to the “offsite” piece of the 3-2-1 backup strategy… I can’t think of how that offsite backup can be kept in sync without using a cloud service.

And how “off-site” is offsite anyway? Would a backyard shed running starlink count? In that case, a local network transfer would be possible.

Backblaze seems like a popular options but I haven’t implemented it yet.

Footnotes

  1. If you spend any amount of time in tech communities, there will always be neckbeards coming out of the woodwork to tell you how stupid it is to use a Raspberry Pi to build a home server when mini PCs give you way more bang for your buck. For the most part they were right after some more months of reading and building, I think having less things to learn than more to configure overall made sticking with the hobby much easier. I only know what I know now after tackling one piece of a system at a time.

Back to the blog