Family Storage & Streaming | Home NAS Setup with TrueNAS

Author Portrait
Lefteris OikonomouJuly 29 2026

Why I Wanted a NAS

My files were everywhere. Some on Google Drive, some on an external hard drive in a drawer, some on my laptop, some on my brother's laptop. I tried to put them all on Google Drive but the cost was huge. I searched for alternatives, but they were also costly or unreliable. I wanted some control over my files and not being threatened by a company bumping up their prices or closing down.

I wanted a place where i could store everything. Always on, always accessible, properly backed up. A place where me and my family can store files, stream media, and access everything from any device without asking me to send things over WhatsApp, sharing folders on the cloud, or paying a fortune for storage.

NAS vs External Drive

The first solution is an external drive into a USB port. It technically works as shared storage but it has no redundancy, no proper permissions, no snapshots, no media server capabilities and the performance is limited. You have to either exchange it by hand or somehow make it accessible in the network via a pc. But that pc must be always on.

A NAS is a small always-on computer purpose-built for storage. It runs its own operating system, manages disks with RAID or similar redundancy, serves files over the network via SMB, and can run apps like media servers and backup tools. If a drive fails, your data survives. If you want to give your brother access to a shared folder but not your private one, you can.

First Try

Before going all in on equipment, i started with an old PC I had lying around and a couple of spare hard drives — a 1 TB and a 2 TB. I installed TrueNAS, made a mirror of the 2 drives, and used it for a month or two to see if this was something I would be able to set up and actually use. After a month of using and testing it with the family, I was sure that we would use it long term.

The Hardware I Chose

After research, I went with an AOOSTAR mini PC. Small, quiet, low cost, low power, and it has room for the drives I need.

Why TrueNAS? I wanted something open source and stable. TrueNAS has the largest ecosystem and is based on ZFS. It offers me copy-on-write, snapshots, data integrity checks, proper RAID. I looked at Unraid and Synology but I did not want to pay for closed software when TrueNAS does what I need.

RAM: A 16 GB RAM stick is enough for my use case.

Boot drive: A small NVMe for the operating system. I keep boot and data completely separate so if I ever need to reinstall TrueNAS, my data pool is untouched.

Storage drives: 2 × 8 TB Seagate IronWolf Pro in a mirror. NAS-rated drives designed for always-on operation. A mirror means both drives have the same data — if one dies, the other keeps going and I replace the failed one without downtime.

My Services VLAN gives the NAS a static IP, and only trusted devices can reach it through the firewall.

My Dataset and Folder Structure

TrueNAS uses ZFS datasets instead of plain folders. A dataset is like a folder but with its own permissions, quotas, compression settings, and snapshot schedule. This matters because I can snapshot `documents` independently from `media`, and I can set different permissions on each without nesting headaches. Here is what `tank8` looks like:

tank8/
├── apps/       # App configs and data (Docker volumes)
├── backups/    # Device, cloud and service backups
├── homeFlix/   # Media library for streaming
├── panos/      # Brother's private folder
├── scripts/    # Automation scripts and cronjobs
├── secre/      # My private folder
├── shared/     # Family shared folder
├── torrents/   # Temporary download folder
└── vm/         # Virtual machine storage (rarely used)
Each app's config lives on the NAS so it persists across container rebuilds. If I blow away a Docker container and recreate it, the config is still there on tank8/apps/.

Family Users and Permissions

I created a TrueNAS user for each person in the house — me, my brother, and my girlfriend. Each user has their own credentials for SMB access. The permission logic is simple:

  • shared: everyone can read and write

  • secre(my private folder) — only my user can access it

  • panos (brother's folder) — only his user can access it

  • homeFlix: everyone can read (for streaming), only root and specific apps can write

  • backups: only my user

TrueNAS handles this through POSIX permissions and ACLs on each dataset. I set the owner, the group, and the permissions once. When someone connects via SMB with their credentials, they only see what they are allowed to see.

Media Streaming

The homeFlix dataset is my media library. Movies and TV shows live here in a folder structure that the apps understands.

Jellyfin is my media server. It scans the library, fetches metadata and artwork, and serves everything to any device with a web browser or the Jellyfin app. TVs on the IoT VLAN have a firewall rule allowing them to reach Jellyfin on the NAS for streaming.

Immich handles photos and videos. It is a self-hosted Google Photos alternative. My phone automatically backs up photos to Immich, and I can browse them from any device. The downside is that Immich stores files in its own structure so you have multiple nested folders. But it's easy to access photos through the Immich web UI or app.

Plex is also running alongside Jellyfin. I started with Plex, moved to Jellyfin for most things since it is fully free, but keep Plex around because some family members prefer its interface.

Automated Media Downloads

I have an automated pipeline for downloading legal movies and TV shows. The stack is:

Prowlarr: manages indexers (torrent sites)

Radarr: monitors and grabs movies

Sonarr: monitors and grabs TV shows

Bazarr: fetches subtitles automatically

qBittorrent: the download client

Overseerr: a request interface where family members can request movies/shows.

It works like this: someone requests a movie in Overseerr, Radarr picks it up, searches Prowlarr's indexers, sends it to qBittorrent, and when the download finishes, it gets moved to the right folder in `homeFlix` with proper naming. Jellyfin picks it up automatically.

I am not going to write a full setup guide here because there are dozens of good videos and tutorials online explaining the *arr stack in detail. The important part for this article is that all the config for these services lives on tank8/apps/ and the media lands on tank8/homeFlix/.

Accessing the NAS From Different Devices

Mac: Finder → Go → Connect to Server → smb://nas.homelab/shared (or whichever share). It mounts like a local drive. I have it set to auto-mount on login.

Windows: File Explorer → Map Network Drive → \\nas.homelab\shared. Same idea. Persistent connection across reboots.

Remote (away from home): I connect via [WireGuard VPN](/en/blog/tech/wireguard-vpn-home-lab/) and the NAS is accessible as if I were on the local network. SMB mounts work, Jellyfin works, everything works. The local DNS names resolve because VPN clients use my home DNS server.

SMB is the right protocol for home use. It works natively on Mac, Windows, and Linux without installing anything. It handles permissions properly and the performance over gigabit ethernet is fast enough for everything including 4K video playback.

Backups and Snapshots

ZFS snapshots are the first line of defence. TrueNAS takes automatic snapshots of each dataset on a schedule — daily for some, weekly for others. A snapshot is a point-in-time copy of the dataset that takes almost no extra space (it only stores what changed). If I accidentally delete a file or something gets corrupted, I can roll back to any snapshot in seconds.

I keep hourly snapshots for 24 hours, daily snapshots for 30 days, and weekly snapshots for 4 months. This is all built into ZFS — no extra software needed.

Off-site backup to Cloud Storage: Snapshots are great but they live on the same physical drives. If the NAS catches fire or both drives fail at once (unlikely with a mirror, but possible), everything is gone. So I run a Python script daily that syncs critical datasets — documents, personal folders, and important configs — to Cloud.

Config backups: The TrueNAS config itself gets exported periodically to my cloud storage. If I ever need to reinstall TrueNAS, I can import the config and everything — users, shares, snapshot schedules — comes back.

Tips For TrueNAS

Separate boot from data: When TrueNAS needs an update or if you mess something up in the OS, you can reinstall without touching your data pool. I learned this from forums before making the mistake myself.

The web UI is good enough: I manage almost everything through the TrueNAS web interface. Rarely need the command line. The UI handles datasets, snapshots, shares, users, and services well.

What I Would Do Differently

Honestly? Nothing major. I would just start sooner .The only regret is that NAS-rated drives and mini PCs are very expensive right now (summer 2026).

This is part of my Building My Home Lab series — where I document everything I built, what worked, what broke, and what I learned. Follow along for practical infrastructure posts aimed at developers who want to build real systems.

Relevant Posts

Raspberry Pi 5 as Home DNS Server | AdGuard Home Setup
Tech10 minutes read
Raspberry Pi 5 as Home DNS Server | AdGuard Home Setup

How I replaced my ISP DNS with a Raspberry Pi 5 running AdGuard Home. Network-wide ad blocking, local DNS records, and full visibility across all VLANs.

Author Portrait
Lefteris OikonomouJune 11 2026
How And Why I Set up my Own Router
Tech10 minutes read
How And Why I Set up my Own Router

How I set up a UniFi Cloud Gateway behind my ISP router, why double NAT broke things, and how bridge mode gave me a clean public IP and full control.

Why You Should Build a Smart Home
Tech10 minutes read
Why You Should Build a Smart Home

How building a home lab with VLANs, Docker, NAS, and smart home automation made my life better and improved me a software engineer.