Intro
This post will be way more hardware-oriented than my usual but its been a project I had had in mind for a long while and finally got to put it together in the last six months or so. This is not meant to be a full setup guide but more of a compilation of process and sources to setup a similar solution.
After testing out Jellyfin as described in my previous post along with Immich to compile and consolidate the family photo collection, I wanted to setup a formal network attached storage (NAS). Up to this point I had been playing around with ad hoc setups that worked reasonably well but were a bit unreliable in the long run (updates were messy and there were frequent hiccups with the system), so I did some more research, saved some money, and went for a full dedicated NAS solution.
In terms of OS, I tried running both TrueNAS and Unraid in a couple of Virtualbox instances for a bit of time, as that path allowed me to instantiate virtual disks and setups to test how the setup process went in each one of the systems. TrueNAS seemed quite robust and reliable, the setup required much more planning and a priori knowledge on NAS systems as compared to Unraid. After watching a bunch of videos and reading quite a bit, I went with the latter for my build, as it allowed for more flexibility in mixing up different-sized HDDs and the community seemed to be very focused on applications such as media streaming and libraries management through Docker containers, and their starter guides were quite friendly and easy to follow.

Hardware
I had initially thought of using my old laptop and to buy a DAS for storage but decided against it because I didn’t want to rely on the USB connection between the two devices as this has caused me trouble in the past. This motivated me to save some money and buy a dedicated hardware solution for the project.
NAS
I went with the Terramaster F4-424 4-Bay as I mainly wanted a setup to stream my music, tv/movies, and to store my photography collections. This build seemed like it would be a reasonable compromise between computational power and low electricity consumption with four bays for disk drives and two NVMe slots. Must confess that I was tempted by the PRO/MAX versions too, but decided to keep the cost a bit lower as to use that money in memory and a RAM expansion.

Cache/Array
For cache I chose the 2TB WD_BLACK SN7100 NVMe SSD. I really didn’t need the 2TB but it was at a reasonable price as compared to the 1TB version, so I just went with it as it would also give me more flexibility and expandability in applications.
As for the main storage I got a couple of Seagate IronWolf 8TB NAS on sale, and had a Western Digital Ultrastar 10TB (He10/12) laying around. These three disks would make up the main storage array and I had an additional Ultrastar DC HC510 10TB, which was setup as parity.
Finally, after some research and following NASCompares’ guide, I got a SanDisk 16GB Ultra Fit USB to install and run the OS (as unraid loads from the flash drive into memory).

RAM
I did not expand the RAM right away, in my initial tests the server’s performance was good enough for most applications but every now and then the system would stutter a bit, and usage was often above 80% so I decided to double the memory to 16Gb with the official A-SRAMD5-16G to avoid compatibility issues.

Travel Router
One additional thing I wanted to try was to use the NAS as a VPN. For this to be as flexible as possible, and after watching The Uncast Show’s: “The Ultimate Guide to Tailscale on Unraid” I went ahead and got a Beryl AX so that any device connected to it was redirected to the NAS’ exit node.

Setup
First Boot
Once I got the F-242 and checked that it booted with the original OS. I went ahead and followed NASCompares great guide to setup my bootable flashdrive. Unraid is a bit unique in that the OS and configuration file are stored in a flash drive and loaded into memory at boot, so the USB memory has to be plugged in internally. After removing some screws, I got the flashdrive in place, and waited patiently for the first boot.
Array/Pool
With the initial boot behind me, and a static IP setup, it was time to setup the HDDs in the array. I had already done a thorough flash in my Linux computer to make sure they were in reasonable shape for the NAS. In the array I used the two 8TB IronWolf disk with the 10TB HGST Ultrastar as parity (the 10TB WD Ultrastar was added later after juggling around some data in a couple of other portable drives), and the 2TB WD_BLACK NVMe in the pool (cache). For the initial setup I followed Elevated Systems’ guide and after waiting for a bit, the array came online so I just waited for parity to get done before doing anything else. After parity was done I just did a full parity check followed by an extended SMART check on each one of the drives and it was all good to go to get started with the shares, and software installation.

Shares and Moving Data
I already had my music, movies, tv shows, and photo collections in a scattered group of HDDs, so I initially started transferring the files over the network. This wasn’t too bad but it was a bit prone to disconnects. To make the process a bit faster and more reliable, I used my SanDisk 2TB Extreme Portable with Krusader to slowly and carefully move everything in the right naming and folder patterns (specially for Jellyfin, so that everything ran as smoothly as possible). The whole data-transferring process took a couple of weeks in total so, in the meantime I went ahead and started setting up the software in the NAS.
Software Breakdown
This section is not meant to be a thorough installation guide but just a small breakdown of the docker applications I have found useful so far. I’m adding an Easy (E), Medium (M), Hard (H) qualitative score on how much general difficulty I had setting it up, and the tutorial or guide followed in the installation.
Must Install
These set of applications are the ones that I’d say are an absolutely must to get running as they either make life easier, or enable more flexibility to run other docker images.
- Krusader (E): a very lightweight file manager [AlienTech42]
- Tailscale (E): enables easy remote access without needing to setup remote proxy [The Uncast Show]
- Appdata Backup (E): runs scheduled backup for applications data [AlienTech42]
- Docker Compose Manager: provides a way to manage docker compose stacks
- Unassigned Devices: allows to mount unassigned devices (not part of an array)
- Unassigned Devices Preclear: allows to preclear unassigned devices (not part of an array)
- Unbalanced: allows to move data between disks in an array for fine-scale management [AlienTech42 guide]
Main Apps
As I eluded before, most of the intended use for my NAS was to store and stream my media collection and these are the apps that I have found the most useful.
- Jellyfin (E): for movies/tv streaming and management [BC Adventure]
- Immich (M): photo library management [official guide]
- Navidrome (E): music streaming and management [official guide]
- Audiobookshelf (E): audiobook/podcasts streaming and management [AlienTech42]
- Calibre (M)/Calibre-Web (M): book library management [Technik22]
- RomM (H): retrogames streamer and manager [AlienTech42]
- Vaultwarden (H): password management [The Uncast Show]
Plugins/Auxiliary
- MusicBrainz Picard (E): music metadata tagger
- Jellemplex-Dedupe (E): media de-duplicator [The Uncast Show]
- Handbrake (E): video encoder [Spaceinvader One]
- Docker-WebUI: a simple frontend with links to all installed docker apps
- Fix Common Problems: scans system for common issues with configurations
- Dynamix Cache Directories: caches filepaths so that disks don’t have to spin when exploring folders
- User Scripts/User Scripts Enhanced: allows the automation of custom scripts

Final Thoughts
This has been a pretty fun project and I’ve been learning quite a bit on data resilience, networks, disk hardware as well as extending knowledge on docker containers. Will try to post some updates in the future with new apps and upgrades as they come along.
Sources
Whilst doing my research on Unraid, I mostly followed the guides and videos from: The Uncast Show, Spaceinvader One, AlienTech42, BC Adventure