Part 4: Installing Navidrome on TrueNAS SCALE
The final post in this series. Part 1 covers TrueNAS installation, Part 2 covers Nextcloud, and Part 3 covers Immich. This post wraps up by adding a music streaming server.
What is Navidrome?
Navidrome is a lightweight, self-hosted music server. Point it at a folder of music files — FLAC, MP3, AAC, whatever you have — and it becomes your own private streaming service, accessible from any browser or any Subsonic-compatible mobile app.
It's fast, low on resources, and refreshingly simple. Where Immich is a sophisticated platform with machine learning and mobile sync, Navidrome has one job: serve your music library, and do it well.
If you've been buying music on Bandcamp, ripping CDs, or archiving FLAC downloads for years, this is how you listen to all of it from any device on your network (or beyond, if you expose it externally).
Before you start: organise your music library
Navidrome reads your music files directly — it doesn't import or copy them. It expects a reasonably conventional folder structure and relies on embedded metadata tags (artist, album, track number) for its library view.
A clean layout helps:
/mnt/tank/music/
Artist Name/
Album Title (Year)/
01 - Track Name.flac
02 - Track Name.flac
If your tags are a mess, tools like MusicBrainz Picard (free, open-source) can clean them up before you point Navidrome at your collection.
You don't need to have your music organised perfectly before starting — Navidrome will do its best with what it finds — but good tags make the library view much more useful.
Step 1: Get your music onto TrueNAS
If you haven't already, copy your music to your TrueNAS pool. A few options:
- SMB share: Enable the SMB service in TrueNAS (Services → SMB → Start), create a share pointing at a dataset, and copy files from your Mac or Windows machine like any network drive.
- SFTP: TrueNAS supports SSH; use an SFTP client like FileZilla or
rsyncfrom Linux. - USB drive: Attach a drive to the TrueNAS machine and copy via the Shell if needed.
Create a dedicated dataset for music, e.g. /mnt/tank/music, to keep it cleanly separated from other data. This dataset is read-only from Navidrome's perspective — it won't modify your files.
Step 2: Find Navidrome in the catalog
Apps → Discover Apps → search for Navidrome.
Click it, then Install.
Step 3: Configure Navidrome
Application Name
Leave as navidrome.
Navidrome Configuration
- Music Folder: This is where you tell Navidrome where to find your music. Set this to a Host Path pointing at your music dataset:
/mnt/tank/music
Setting this as a Host Path is important. It means Navidrome reads your actual files on the ZFS pool, rather than a copy inside the container's internal storage. Your music files stay exactly where they are.
- Data Folder: This is where Navidrome stores its own database and transcoding cache. Leave this as the default (internal app storage) — it's a small database and doesn't need to be on a custom dataset.
Network
The default port is 30035. Note it for access.
Optional settings:
- Max Bit Rate: If you want to transcode streams to a lower bitrate for remote access over slow connections, set a value here (e.g. 320 for near-lossless, 128 for bandwidth-constrained). Leave at 0 to stream at original quality.
- Transcoding Enabled: Leave on unless you know all your clients support your file formats natively.
Step 4: Install and open the UI
Click Install. Navidrome is a single lightweight container, so startup is quick — usually under a minute.
Navigate to:
http://<your-truenas-ip>:30035
You'll be prompted to create an admin account on first launch. After logging in, Navidrome will immediately begin scanning your music folder. Depending on library size, the initial scan takes anywhere from a few seconds to several minutes.
You can watch scan progress under Settings → Library in the Navidrome UI.
Step 5: Connect a mobile app
Navidrome speaks the Subsonic API, which has a large ecosystem of clients. Some well-regarded options:
- Symfonium (Android) — polished, actively maintained, paid
- Substreamer (iOS) — good offline support
- DSub (Android) — free, feature-complete
- Sonixd (Desktop, all platforms) — Electron-based but excellent
In whichever client you choose, the server settings will ask for:
- Server URL:
http://<your-truenas-ip>:30035 - Username / Password: your Navidrome credentials
Once connected, your full library is available for streaming, with offline download support depending on the client.
A note on transcoding
Navidrome can transcode on the fly — converting FLAC to MP3 in real time, for example, to reduce bandwidth on mobile connections. This works well, but it uses CPU. On modest hardware (a Raspberry Pi or a low-power mini PC), transcoding multiple streams simultaneously can cause stuttering.
For local network listening where bandwidth isn't a concern, setting clients to request the original format avoids transcoding entirely and gives the best audio quality with no CPU overhead.
What you have now
At the end of this series, your TrueNAS SCALE server is running:
- Nextcloud — private file sync and cloud storage
- Immich — automatic photo and video backup from your phone
- Navidrome — music streaming from your own library
All of it running on hardware you own, with data stored in ZFS datasets you control, snapshotted automatically, and accessible from any device on your network.
The subscription bills for the commercial equivalents of these three services alone would likely run to £150–200 a year. The hardware to run all of this — a used mini PC or a modest NAS — pays for itself quickly, and then keeps going.
Where to go from here
The TrueNAS app catalog has dozens more applications worth exploring: Jellyfin for video streaming, Vaultwarden (a Bitwarden-compatible password manager server), Syncthing for peer-to-peer file sync, and Home Assistant for home automation.
The pattern for installing any of them is the same as what you've learned here: create a dataset, configure a Host Path, note the port. The first install is always the hardest; after that it becomes routine.
This post is part of a series on replacing commercial software with open-source alternatives at home. Start at the beginning of the series or read the overview post.