A Dual-Node Home NAS Cluster for $210

lasercoder1 pts1 comments

A Dual-Node Home NAS Cluster for $210

Laser-Coder

A Dual-Node Home NAS Cluster for $210<br>By Jason Lenthe | May 22, 2026

FreeBSD + ZFS + Nginx = Home Videos on Demand

Over the past 20 years or so, I&rsquo;ve accumulated about a terabyte<br>of data that is important to me and my family. This data primarily<br>consists of home videos taken with a Sony HD camcorder and a Nikon<br>DSLR camera as well as pictures and videos taken from various smart<br>phones over the last twelve years. This is personally valuable data<br>that I want to protect, preserve, and have easy access to at home.

Traditionally, I have kept these files on a computer and used an<br>external hard drive as backup. This got the job done, but left<br>something to be desired. It was a chore to remember to periodically<br>get the backup out, and copy recent data. Sometimes, I&rsquo;d forget<br>to do this for a whole year. And playing the videos on a TV was<br>typically more trouble than one would hope—having to get an HDMI<br>cable out, hooking up a laptop to the TV, and navigating through each<br>video file from the laptop.

So I decided to do a fun home hobby project and make a custom DIY home<br>NAS system to store and secure my terabyte of data and make it easily<br>streamable to my TV. I&rsquo;m happy to say that I&rsquo;ve completed<br>the first working production version of it. In this article, I will<br>tell the full story of this home NAS and video streaming project and<br>all the fun I had implementing it.

Note: this article mentions several technologies related to storage,<br>cloud, and automation. If you&rsquo;re not familiar with any of them,<br>follow the links to learn more.

Project Goals

The first goal of the project was to make a reliable backup<br>system—one you don&rsquo;t have to worry about. While computer<br>and hard drive failures are somewhat rare, they absolutely do happen<br>and I&rsquo;ve lost a number of devices over the years. Fortunately,<br>with serviceable backups, I&rsquo;ve never had any major data loss,<br>but I have had to scrape recent non-backed up data off a dead computer<br>with functioning storage before, and it was not fun. Cloud services<br>can be great but they&rsquo;re also limited by the bandwidth of your<br>internet connection and will run upwards of $100 per year for a<br>terabyte.

The second goal was ease of use both for backing up new content and<br>for letting any family member stream home videos to our family room<br>TV. Typically in the past this has been done by connecting a laptop<br>(that either has the data internally or with an external hard drive)<br>to the family room TV. That was never particularly difficult to do but<br>perhaps one or two steps too many for it to be a common occurrence.

The third goal was affordability. I could easily drop $400 on a<br>pre-built appliance and some hard disks, but, for this project, I<br>wanted to use my skills to make my dollars go as far as possible. I<br>also wanted a system that is easy to turn on and off, so that<br>it&rsquo;s not burning electricity and wasting money all the time. I<br>really only need the system to be available a small percentage of the<br>time.

The Design

I designed the system around the idea of using cheap second-hand<br>computers running<br>FreeBSD and<br>ZFS<br>and a system of automatic replication. Cheap second-hand computers are<br>readily accessible on eBay. But you&rsquo;re getting a machine<br>that&rsquo;s been powered on in an office for years, possibly a<br>decade. There is simply no telling when such a machine will die. So,<br>the plan was to set up two computers in a cluster—one serving as<br>the primary and the other a replica. If either dies, a replacement can<br>be ordered and set up in a matter of weeks. ZFS send/recv provides an<br>easy and efficient way to replicate an entire file system from one<br>host to another. In practice, I only plan to use a single primary and<br>single replica, but the system is designed to support multiple<br>replicas if desired in the future.

But what if they both die around the same time? It seems unlikely but<br>perhaps more likely than one might expect, if, say, both machines were<br>taken from the same office and have about the same amount of power-on<br>time. I&rsquo;ve never been one to roll the dice, so I planned on an<br>additional replication step to the cloud. I use AWS extensively at<br>work and know my way around S3 pretty well now.<br>S3 Glacier Deep Archive<br>is one of the most affordable cloud storage options available these<br>days with the only disadvantage that you may have to wait up to 48<br>hours to have your data restored. Given that S3 is really the backup<br>to the backup here, the 48 hour wait in an unlikely failure is fine.<br>Glacier Deep Archive is a great fit. The overall design is shown in<br>the following diagram.

System architecture diagram

Custom software components were planned for setting up and maintaining<br>the NAS hosts using<br>Ansible,<br>replicating a ZFS dataset, creating cloud resources, and monitoring<br>the NAS hosts for inactivity. Each custom component is described in<br>the following table.

Custom...

rsquo home data system videos backup

Related Articles