Navidrome: A Self-Hosted Music Server That Speaks Subsonic
Your Personal Streaming Service. Navidrome Music Server Navidrome is an open source web-based music collection server and streamer.
At a glance
- What is it?
- Navidrome is a Go-based music server and streamer that handles large collections, transcodes on the fly, and works with existing Subsonic clients. It is a strong option for those who want to own their streaming stack, but it has specific setup and licensing trade-offs.
- Who is it for?
- Adopt Navidrome if you manage a large personal music collection, want multi-user support, and prefer a Subsonic-compatible server that works with existing mobile apps. Avoid it if GPL-3.0 licensing is a concern for your deployment.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Go, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on November 13, 2026, and from our analysis. They are not legal advice.
Star history
- navidrome/navidrome24,707 ★ · +2,152
| Repository | 2026-07-28 | 2026-11-13 |
|---|---|---|
| navidrome/navidrome | 22.6k | 24.7k |
2,152 Stars in the last 108 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
What Navidrome Solves and Who It Serves
Navidrome addresses the problem of relying on commercial streaming subscriptions. It gives you a personal streaming service from your own music collection. The target user is someone with a large library, possibly thousands of albums, who wants to access it from any browser or mobile device. The README explicitly says it handles very large music collections and streams virtually any audio format. This is not a tool for casual listeners with a few dozen tracks; it is built for collectors and self-hosting enthusiasts. The multi-user feature also makes it suitable for families or small groups who want separate play counts, playlists, and favorites. If you already use Subsonic-compatible clients, Navidrome can replace the server without changing your apps.
Core Mechanism: Subsonic API and Library Monitoring
Navidrome works as a server that exposes a Subsonic API, which means it can talk to a wide range of existing clients. The README states it is compatible with all Subsonic, Madsonic, and Airsonic clients. The server monitors your library folder for changes, imports new files, and reloads metadata automatically. This is a key mechanism: you drop files into a directory, and Navidrome picks them up without manual rescanning. The data flow is straightforward: the server reads audio files, extracts metadata, stores it in a database (go.mod pulls in go-sqlite3), and serves it through the API. The API compatibility is the bridge that lets Subsonic mobile apps work without modification. The README also mentions transcoding on the fly, which can be set per user and per player. This means the server can convert audio to a format that suits the client, such as Opus, which is a modern codec with good compression.
Getting It Running: Installation Paths
The README points to the project website for installation instructions, but it does mention that ready-to-use binaries are available for macOS, Linux, and Windows, including Raspberry Pi. Docker images are also provided. The website lists three main installation methods: Docker, pre-built binaries, and building from source. You need to check the official docs for the current volume mounts and ports. The project also has a live demo, which is a good way to test the interface before installing. The note about the `master` branch being possibly unstable is important: you should use the latest release, not the development branch, for a stable setup. The release history shows frequent updates, with v0.64.2 being the latest release.
Feature Highlights: Metadata, Compilations, and Lyrics
Navidrome places a strong emphasis on metadata. It reads your curated tags, which is a relief for those who have spent time organizing their library. The README specifically highlights support for compilations (Various Artists albums) and box sets (multi-disc albums). This is a pain point for many music servers, as they often mishandle multi-disc or compilation albums. Navidrome also supports lyrics from sidecar files like .ttml, .yaml, .lrc, and embedded tags, with a configurable `lyricspriority` setting. This is a nice feature for karaoke or just following along. The web interface is based on Material UI, which gives it a modern look, and it is themeable. The project is translated into various languages, and it uses POEditor for translations, which indicates a community effort. These features show that Navidrome is not just a bare-bones streamer; it aims to be a polished experience for audio enthusiasts.
Limitations and Failure Modes
One limitation is that the README does not specify the exact audio formats supported, only that it streams 'virtually any audio format available.' This is a claim that needs verification against the actual documentation. Another failure mode is the instability of the `master` branch. If you follow the default branch on GitHub, you might hit a broken build. The README warns about this directly. Also, while the server is multi-user, the setup of user permissions and transcoding settings per player is not trivial. For very large libraries, the initial import might take time, but the README does not provide performance numbers.
Alternative: Airsonic and Other Subsonic Servers
The README names no alternative server. Its compatibility list, all Subsonic, Madsonic and Airsonic clients, means a client you already use with one of those servers should be able to connect to Navidrome, and the README claims very low resource usage for the server itself.
Maintenance, Upgrades, and License Implications
Navidrome is actively maintained, with multiple releases in a short span (v0.64.0 on September 12, v0.64.1 with security fixes on September 21, and v0.64.2 on September 24, 2026). This suggests a rapid development cycle, which is good for bug fixes but also means you need to keep up with updates. The project provides nightly builds, but those are for testing. For production, you should use the latest release. Upgrades are likely straightforward if you use Docker, as you just pull a new image. However, you should always back up your data directory before upgrading, as the database schema might change. The license is GPL-3.0, which means if you modify and distribute the software, you must release your changes under the same license. For personal use, this is not a concern, but if you plan to integrate Navidrome into a commercial product, you need to be aware of the copyleft obligations. The project also partners with several cloud hosting providers, including PikaPods, for officially supported managed options. This is a way to avoid the maintenance burden, but it costs money and is not self-hosted.
Editorial conclusion
Adopt Navidrome if you manage a large personal music collection, want multi-user support, and prefer a Subsonic-compatible server that works with existing mobile apps. Avoid it if GPL-3.0 licensing is a concern for your deployment. Before adopting, verify that your target audio formats and metadata sidecar files are supported, and check the latest release notes for any breaking changes in the Subsonic API implementation.
Frequently asked questions
What is Navidrome used for?
Navidrome is an open source web-based music collection server and streamer for listening to your own collection from any browser or mobile device. It handles large libraries, reads your curated metadata, watches the folder for changes, and serves Subsonic, Madsonic, and Airsonic clients.
Is Navidrome free?
The repository is licensed GPL-3.0 and the software is open source. The paid routes named in the README are partner cloud hosting providers, such as PikaPods, offering officially supported cloud-hosted solutions where a share of the revenue helps fund development at no additional cost for the user.
Is Navidrome good?
The feature list claims it handles very large music collections with very low resource usage, streams virtually any audio format, supports compilations and multi-disc box sets, and gives each user their own play counts, playlists, and favourites. No benchmark figures are published, so measure it on your own library.
Which is better, Jellyfin or Navidrome?
The README makes no comparison with Jellyfin. It describes Navidrome as a music collection server and streamer whose client compatibility is scoped to Subsonic, Madsonic, and Airsonic clients, and nothing in the repository documents any video capability.
how to install navidrome
The README gives no commands and points to the project's website, which splits installation into Docker, pre-built binaries, and build from source. Docker images are provided, and ready to use binaries are promised for all major platforms including Raspberry Pi.
how to use navidrome on windows
Windows is a supported platform and the build matrix includes windows/amd64 and windows/386, with a service library that lets the server run as a Windows service rather than a console window. The install steps themselves live on the project's documentation site, not in the README.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/navidrome-navidrome)Star history chart for your README
[](https://hysenlabs.com/projects/navidrome-navidrome)Was this useful?