Favicon of Navidrome

Navidrome

Navidrome is an open source, self-hosted music server that streams your own library to any Subsonic-compatible client.

Open Source Alternative to:
Navidrome website screenshot
Navidrome GitHub repository preview

Navidrome is an open source, web-based music collection server that streams your own audio library to any browser or mobile device. Its README describes it as being like your personal Spotify, but built around music you already own rather than a licensed catalog. Written in Go, it's designed for low resource usage and runs comfortably even on a Raspberry Pi. A live demo is published on the project's website so you can try the interface before installing it, and the project maintains active Discord and Reddit communities for support and feature discussion. The master branch tracks active development and can be unstable, so day-to-day production use is expected to run from tagged releases rather than the latest commits.

Key features

  • Large library support: Handles very large music collections and streams virtually any audio format.
  • Rich metadata handling: Reads and uses your curated tags, with strong support for compilations (Various Artists albums) and multi-disc box sets.
  • Multi-user accounts: Each user gets their own play counts, playlists, and favorites on a shared server.
  • Subsonic/Airsonic/Madsonic API compatibility: Works with the existing ecosystem of Subsonic-family client apps across desktop, mobile, and web.
  • On-the-fly transcoding: Transcodes audio per user or per player, including Opus encoding, so bandwidth and format constraints can be handled per client.
  • Lyrics support: Reads lyrics from sidecar files (.lrc, .srt, .ttml, .txt, and others) as well as embedded tags.
  • Automatic library monitoring: Watches your music folder for changes and imports new files and metadata without a manual rescan.

Self-hosting and deployment

Navidrome runs on macOS, Linux, and Windows, with prebuilt binaries for all major platforms including Raspberry Pi, and official Docker images. PikaPods also offers an officially supported managed hosting option, with a share of the revenue going back to fund Navidrome's development. The master branch can be unstable during active development, so the project recommends installing from tagged releases instead of building off master directly.

Tech stack

The server is written in Go, chosen for low resource usage and easy cross-platform binaries. The web interface is themeable and built on Material UI, and the project is compatible with the Subsonic API, which is what lets any Subsonic, Madsonic, or Airsonic client connect to a Navidrome server without a Navidrome-specific client. Navidrome is also translated into a range of languages through POEditor, with translation contributions accepted from the community, and the interface, transcoding behavior, and themes can all be customized per deployment. Docker pulls for the official image are tracked publicly and number in the millions, reflecting how much of Navidrome's install base runs in containers rather than from binaries. Release downloads are also tracked publicly on GitHub, and a status badge in the README links to the latest CI pipeline run for the master branch.

Frequently asked questions

Share:

Stars
22.5K
Forks
1.6K
Last commit
2 hours ago
Repository age
10 years
License
GPL-3.0
Self-hosted
Yes
Activity score
82/100
View Repository
Ad
Favicon

 

  
 

Similar to Navidrome

Favicon

 

  
 
Favicon

 

  
 
Favicon