Skip to content
AgentThread
Open Source#music#streaming#self-hosted#privacy#media-server#spotify-alternative

Navidrome: Stream Your Own Music Collection to Any Device, Forever Free

A self-hosted music server that indexes your MP3 and FLAC files, serves them to any app that supports the Subsonic protocol, and costs nothing beyond the hardware it runs on.

AgentThread9 min read
Share

If you have a folder of music files sitting on a hard drive, Navidrome turns that folder into a private streaming service. It handles MP3s, FLACs (Free Lossless Audio Codec: a compressed format that preserves every detail of the original recording, unlike MP3 which discards some audio data to reduce file size), AAC, OGG, and most other common formats. You access it from any browser, any phone app, or any desktop client, from anywhere in the world. No monthly subscription, no data collected about what you listen to, no dependency on Spotify staying solvent. The project lives at github.com/navidrome/navidrome and has 22,674 stars.

The value proposition is narrow and clear. Navidrome does one thing: serve your personal music library. It does not manage videos, photos, ebooks, or podcasts. That focus is what makes it fast, stable, and easy to run on very modest hardware.

FactValue
What it isSelf-hosted music streaming server
Built byNavidrome contributors (open-source)
LicenseGPL-3.0 -- free to use
PlatformsLinux, macOS, Windows, Docker, Raspberry Pi
RequiresA machine where your music files live; 512 MB RAM is enough
Install methodSingle binary download or Docker
VerdictInstall if you have a music library and want to stream it anywhere without a Spotify or Apple Music subscription

What Navidrome actually is

Navidrome is a music server: a program that reads your music files from a folder on your computer or NAS (Network Attached Storage: a small box with hard drives connected to your home network, used for storing large collections of files) and makes them available to stream over your local network or the internet.

The key thing to understand is the Subsonic protocol. Subsonic is a widely adopted API standard (a defined set of rules for how music servers and music apps talk to each other) that has been around since the mid-2000s. Dozens of apps for iPhone, Android, and desktop already support this standard. When Navidrome speaks the same protocol, all those existing apps connect to it without any special configuration. You are not locked into one app. If a better app appears next year, you switch without touching the server.

Popular Subsonic-compatible apps include DSub (Android), Ultrasonic (Android), Finamp (iOS and Android), Symfonium (Android), and Sonixd (a cross-platform desktop client). Each app looks and behaves differently but all speak the same protocol to your Navidrome server. Pick the app you like best.

Navidrome also has a built-in web player. Open the server's URL in any browser and you get a full music browser and player right there, without installing any app at all.

What you get after installing it

Navidrome scans the folder you point it at when it first starts. It reads the metadata tags embedded in each file (artist, album, track title, year, genre) and builds a searchable library. The scan runs automatically whenever it detects new files, so adding music to your folder is enough to make it appear in the library.

Album artwork is fetched automatically from MusicBrainz, a community-maintained music database. If your files have artwork embedded, Navidrome uses that. If they do not, it pulls cover images from MusicBrainz so your library looks organized even if your files were ripped without artwork.

Multi-user support means everyone in a household can have their own account, their own playlists, and their own listening history. One Navidrome install serves the whole family without accounts bleeding into each other. You set up users in the admin panel and assign each one a username and password.

Transcoding is available for slow connections. Transcoding means converting audio from one format to another in real time: for example, converting a large FLAC file into a smaller MP3 stream before sending it to your phone over a cellular data connection. This reduces the amount of data your phone downloads without you having to keep a separate set of compressed files. You set transcoding preferences per-user and per-client, so a phone on mobile data gets a smaller stream while a home speaker on WiFi gets the full lossless file.

Scrobbling to Last.fm is built in. Scrobbling means sending a record of each song you play to a tracking service like Last.fm, which builds a listening history over time and generates recommendations based on what you have played. If you already use Last.fm, you connect your account in Navidrome's settings and it sends play events automatically.

Smart playlists and play statistics round out the feature set. Navidrome tracks how many times you have played each track, when you last played it, and your star ratings. Smart playlists can filter on those fields: "tracks I rated 5 stars that I have not played in 30 days" is a query you can build.

The install experience

Navidrome ships as a single binary with no external runtime dependencies. You download the binary for your operating system from navidrome.org, point it at your music folder with a configuration file, and run it. A fresh install takes under fifteen minutes.

The configuration file (a plain text file that tells the program how to run: where your music is, which port to listen on, and any optional settings) is called navidrome.toml. The minimum working version has two lines. Full documentation is at navidrome.org.

MusicFolder = "/path/to/your/music"
Port = 4533

After starting Navidrome, open http://localhost:4533 in a browser. The first time you visit, you create an admin account. Navidrome starts scanning your music folder immediately and shows a progress bar. For a library of 10,000 tracks on a modern machine, the initial scan finishes in a few minutes.

Docker is the preferred install path for anyone already running a home server. Docker is a system that packages software into self-contained units (containers) so they run identically on any machine. The official Docker image at ghcr.io/navidrome/navidrome is well-maintained, and a standard docker-compose file (a configuration file that defines how to run a Docker container with the right settings) is in the documentation. The container approach means Navidrome runs in an isolated environment and can be updated with one command.

For remote access (reaching your library from outside your home network) you need either a VPN (a Virtual Private Network: an encrypted tunnel that connects your phone securely back to your home network) or a reverse proxy (a piece of software that sits in front of your server, forwards incoming requests to Navidrome, and handles the domain name and HTTPS connection) with a domain name. Both approaches are documented on navidrome.org. Neither is a Navidrome-specific problem; the same steps apply to any self-hosted server you want to reach remotely.

The only real friction in the setup is making sure your music folder is organized enough for the metadata scanner to work well. Navidrome reads from the tags embedded in each audio file, not from folder names. If your files have missing or inconsistent tags (common with old rips or downloaded files from the early 2000s), the library will look incomplete. A tag editor like MusicBrainz Picard (a free desktop app that automatically tags your music files using the MusicBrainz database) fixes this before you start.

Where it fits and what to compare it to

Spotify ($11.99 per month) and Apple Music ($10.99 per month) are the obvious comparison points. Both are fully managed streaming services with tens of millions of tracks in their catalogs. The key limitation is that neither lets you add your own files to the streaming library: if a track is not in their catalog, you cannot stream it. Spotify removed its local files feature on mobile in 2019. Apple Music allows local files but only on devices where you have installed the app and synced the library. Navidrome is the right tool when your collection contains anything not on those platforms: vinyl rips, bootlegs, regional releases, music from Bandcamp, or anything bought as a file download.

Jellyfin, covered previously at agenthread.co, is a broader media server that handles music alongside video, photos, and other media. If you want one server for everything, Jellyfin is the more capable option. Navidrome is the better choice if music is the only thing you want to serve: it is faster, uses less RAM, and the music browsing experience is more polished.

Plex handles music alongside video and photos, but its music features are secondary to its video focus and some features require a Plex Pass subscription (starting at $4.99 per month). Navidrome is free with no feature tiers.

Ampache is an older self-hosted music server project that also speaks the Subsonic protocol. It has more features in some areas (podcasts, video, radio) but the setup is significantly more complex, requiring a web server and database to configure separately. Navidrome is easier to install and run for the common case of serving a personal music library.

The decision is simple: if you own your music files and want to stream them from any device without a subscription, Navidrome is the right tool. If you want access to a broad catalog of music you do not already own, Spotify or Apple Music is the answer. Navidrome does not replace a streaming catalog; it replaces the subscription cost for the music you already have.

Verdict

Install Navidrome if you have a music collection and want to stream it from your phone or any browser without paying monthly for a service that does not even let you play your own files. The setup is lighter than Jellyfin or Plex for music-only use, the Subsonic protocol support means you can use whichever app you prefer on each device, and the hardware requirements are low enough that a Raspberry Pi 3 or any old laptop handles it without strain.

Hold off if your music collection is mostly tracks you can find on Spotify or Apple Music. Paying $10 to $12 per month for access to tens of millions of tracks is better value than self-hosting a library of the same tracks. Navidrome is for the collection that those services cannot replace: the stuff that is not in the catalog, the lossless rips you care about, or the Bandcamp purchases you have accumulated.

One practical note: Navidrome has no mobile app of its own. You will install one of the Subsonic-compatible apps listed above to use it from your phone. That is a two-step setup, not a one-step one. Once the app is configured, using it is identical to using any other music streaming app. The extra setup step is a one-time cost.

The project has 22,674 stars, a consistent commit history, and documentation at navidrome.org that covers every common setup scenario. It is not a weekend experiment: it is stable enough to be the permanent home for your music library.

Related posts