A NAS (Network Attached Storage) is a storage device connected to a network, allowing multiple users and devices to access, store, and manage files in one central location, similar to a private cloud.
I needed a NAS because my storage needs were exceeding our family’s 2TB Google cloud plan, which costs $99 per year. While that may seem like a lot to some, it hasn’t been enough for our household. We constantly had to review and delete files, which was time-consuming and frustrating, especially for my parents who wanted to keep everything. Temporarily, I stored files on my computer, but that wasn’t a long-term solution.
After some research, I had two options: buy a ready-to-use NAS or set it up myself. I chose to set it up myself because it’s more affordable and provides a hands-on learning experience. I found TrueNAS, which offers Scale and Core. Core works perfectly for basic NAS functionality with slightly better performance, but I had additional plans, so I opted for TrueNAS Scale. Alongside the NAS, I also set up a Plex server to stream media for our family.
Started: July 2023 (Hardware complete). Finished: February 2024 (Fully configured & operational).
Most of the components, except for the HDD and PSU, were repurposed from my GPU mining setup. I found a good deal on SSDs in bulk on eBay. Prices listed are based on market rates as of July 2023.
I allocated the NAS to my network through the router’s portal and assigned it a static IP address for convenience. This IP address is used to access the TrueNAS web GUI.
Disable DHCP > Select an Aliases IP address that is unused in the network > Save. Then add the DNS server for name server and default gateway.
Groups: Credentials > Local Groups > Add group (e.g., Home) > Turn on Samba authentication > Save.
Users: Credentials > Local Users > Add user info > Assign primary group to the one just created > Save.
Storage > Create Pool: I used a Mirror setup. In case one HDD goes down, it can be replaced with the other. Total usable space becomes 12.73 TB per mirror pair. (Ignore the unassigned disk on the dashboard; it’s my boot drive).
Dataset: Add dataset > Name > Save.
Shares: Shares > Windows (SMB) > Add SMB > Save.
Edit the file system ACL for the SMB share to assign users/groups. Then, find the storage on Windows via File Explorer > Map network drive > \\192.168.1.148\main.
I have ten 14TB HDDs, providing a raw capacity of 140TB. By using a mirrored setup, the usable capacity is halved to 70TB, but each drive acts as a backup against failures. Note: Windows reports capacity differently (binary vs decimal).
Integrated directly into the NAS system using TrueNAS apps. An added GPU helps with hardware transcoding.
Claim code from Plex, create a dataset for Plex, and install the app from the TrueNAS Apps page.
Setup a static IP and configure port forwarding in the router (UniFi settings) to enable remote access outside the network. Finally, add libraries for movies, shows, and photos.
This 70TB build cost $1,800, providing massive storage for family media and a private media library. While replacing our $99/year Google storage plan alone suggests a long ROI, the math changes completely when you consider the modern "streaming tax."
By hosting our own media, we can offset the rising costs of digital subscriptions. In 2026, the average US household spends:
Total estimated build cost, utilizing repurposed parts from a previous GPU mining rig.
Provides 70TB of mirrored, usable storage for the entire household.