Navidrome is a free, open source media & streaming project written in Go and released under GPL-3.0. It has 23,632 GitHub stars, 1,708 forks and 275 open issues, and was last pushed 11 hours ago. On this registry it ranks #3 of 27 tracked projects in Media & Streaming, with 5 head-to-head comparisons available. It gained 143 stars over the last 6 tracked days.

Navidrome — Self-hosted music streaming for your personal collection

What is Navidrome?

What it is

Navidrome is an open-source, web-based music collection server and streamer written in Go and released under the GPL-3.0 license. It lives in the self-hosted media server ecosystem and is intended for users who want to listen to a personal music collection from a browser or mobile device.

The concrete problem it solves is that a local music library is usually only available on one device or through a media player tied to that device. Navidrome provides a server that serves and streams the collection through a web interface, so the same library can be accessed remotely without using a hosted subscription service.

Key capabilities

  • It handles very large music collections, according to the project README.
  • It streams virtually any audio format available to the server, based on the README feature list.
  • It reads and uses existing metadata, including support for compilations and box sets.
  • It supports multiple users, with each user having separate play counts, playlists, and favourites.
  • It monitors the music library for changes, imports new files, and reloads metadata automatically.
  • It supports lyrics from sidecar .ttml, .yaml, .yml, .elrc, .lrc, .srt, and .txt files, as well as embedded TTML, Enhanced LRC, LRC, SRT, and plain-text tags.
  • It provides a themeable, responsive web interface based on Material UI and is compatible with Subsonic-based clients and APIs, as indicated by the topics and README.

Who uses it and how

  • Personal music collectors use it to expose a local library to browsers and mobile devices.
  • Home-server users deploy it on Linux, macOS, Windows, or Raspberry Pi using Docker images or binaries.
  • Multi-user setups use it when each person needs separate playlists, favourites, and play counts.
  • Subsonic client users use it as a self-hosted backend for compatible music apps.
  • Users who do not want to manage servers can use the officially supported PikaPods cloud hosting option.

Getting started

Typical installation methods are Docker images such as deluan/navidrome, ready-to-use binaries for major platforms including Raspberry Pi, and the hosted option through PikaPods. The README directs users to the project's website for installation instructions and advises using releases rather than the master branch for stable binaries.

When to use it — and when not to

Navidrome is appropriate when a user already owns or controls a music collection and wants a self-hosted Subsonic-compatible streaming server instead of a paid subscription service such as Spotify. It may be less suitable when a user wants a fully managed service without operating a server, although PikaPods is offered as a hosted option. The description does not specify database, storage, or SMTP requirements, and the public repository lists 275 open issues, so self-hosters should review the installation documentation and issue tracker before planning infrastructure.

project readme (upstream, from github) — read inline

Navidrome Music Server  Tweet

Last Release Build Downloads Docker Pulls Dev Chat Subreddit Contributor Covenant Gurubase

Navidrome is an open source web-based music collection server and streamer. It gives you freedom to listen to your music collection from any browser or mobile device. It's like your personal Spotify!

Note: The master branch may be in an unstable or even broken state during development. Please use releases instead of the master branch in order to get a stable set of binaries.

Check out our Live Demo!

Any feedback is welcome! If you need/want a new feature, find a bug or think of any way to improve Navidrome, please file a GitHub issue or join the discussion in our Subreddit. If you want to contribute to the project in any other way (ui/backend dev, translations, themes), please join the chat in our Discord server.

Installation

See instructions on the project's website

Cloud Hosting

PikaPods has partnered with us to offer you an officially supported, cloud-hosted solution. A share of the revenue helps fund the development of Navidrome at no additional cost for you.

PikaPods

Features

  • Handles very large music collections
  • Streams virtually any audio format available
  • Reads and uses all your beautifully curated metadata
  • Great support for compilations (Various Artists albums) and box sets (multi-disc albums)
  • Multi-user, each user has their own play counts, playlists, favourites, etc...
  • Very low resource usage
  • Multi-platform, runs on macOS, Linux and Windows. Docker images are also provided
  • Ready to use binaries for all major platforms, including Raspberry Pi
  • Automatically monitors your library for changes, importing new files and reloading new metadata
  • Supports lyrics from sidecar .ttml, .yaml/.yml Lyricsfile, .elrc, .lrc, .srt, .txt files and embedded TTML, Enhanced LRC, LRC, SRT, and plain-text tags (via lyricspriority)
  • Themeable, modern and responsive Web interface based on Material UI
  • Compatible with all Subsonic/Madsonic/Airsonic clients
  • Transcoding on the fly. Can be set per user/player. Opus encoding is supported
  • Translated to various languages

Translations

Navidrome uses POEditor for translations, and we are always looking for more contributors

Documentation

All documentation can be found in the project's website: https://www.navidrome.org/docs. Here are some useful direct links:

Screenshots

Frequently asked questions

Is Navidrome free to use?

Navidrome is open source under the GPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Navidrome do?

Self-hosted music streaming for your personal collection

What is Navidrome written in?

Navidrome is primarily written in Go. Its source is publicly available at https://github.com/navidrome/navidrome, and it has 23,632 GitHub stars.