Navidrome
Lightweight self-hosted music server that streams your own library to any device. Subsonic API compatible, so it works with dozens of existing client apps on Android, iOS, and desktop
Quick Start
docker run -d --name navidrome -p 4533:4533 -v /path/to/music:/music -v navidrome_data:/data deluan/navidrome:latest Overview
Navidrome is a self-hosted music server that streams your personal library to any device. It ships as a single binary with no external database or runtime dependencies. Point it at a folder of music files, and it scans the library, reads the tags, and serves the web interface and API within seconds. The whole process from download to playing a track takes under five minutes on most hardware.
The Subsonic API compatibility is what makes Navidrome practical rather than just functional. The Subsonic protocol has been around long enough that the ecosystem of client apps is genuinely mature. DSub, Substreamer, Symfonium, Finamp, and feishin all work well and offer features like offline sync, gapless playback, and scrobbling to Last.fm. You are not locked into a web browser or a purpose-built app with a limited feature set.
Resource usage is genuinely minimal. Navidrome runs comfortably on a Raspberry Pi 3B with a library of tens of thousands of tracks. CPU load is near zero during playback since it serves pre-encoded files by default rather than transcoding on the fly. Memory footprint stays low regardless of library size.
What it does not do: video, podcast management, or audiobook handling. For a combined audio and video server, Jellyfin is the better fit. For music-only use, Navidrome’s scope is appropriate — it does one thing and does it reliably.
The web interface covers library browsing, now-playing, playlists, and per-user settings. It is clean but basic. Most users who run Navidrome long-term end up using a mobile client as their primary interface rather than the web UI.
Navidrome: Pros & Cons
| Pros (The Wins) | Cons (The Friction) |
|---|---|
| Single binary: No database or runtime needed; running in under a minute. | Music only: No video or podcast support; use Jellyfin for mixed media. |
| Subsonic API: Works with dozens of mature Android, iOS, and desktop clients. | No native apps: Relies on third-party Subsonic clients for best experience. |
| Minimal resources: Runs on Raspberry Pi 3; near-zero CPU during playback. | Transcoding limits: Format support depends on the client app, not Navidrome. |
| 21.3k stars: Active development with automatic library scanning. | Metadata-dependent: Messy file tags produce messy artist/album views. |
Use Cases
Specific ways to use Navidrome for your workflow.
Deployment Strategy
Recommended ways to host Navidrome in your own environment.