Skip to content
OpenSourceSoftware.ai

GitHub stars

24,431
—Awaiting first sync

Awaiting first sync

No measured star history yet

What is Navidrome?

Navidrome turns a folder of music files into a personal streaming service. You can listen in a browser or in many existing music apps for phones and computers. It is light enough to run on a small home server, so your collection stays under your control.

Navidrome is an open-source music server and streamer for your own music collection. It reads your files and their metadata, streams almost any audio format with on-the-fly transcoding, and offers a web player as well as support for Subsonic and OpenSubsonic apps on iOS, Android and desktop. Each user gets their own playlists, favourites and play counts.

Core capabilities

  • Works with Subsonic and OpenSubsonic client apps on mobile and desktop.
  • Transcodes on the fly per user or player, including Opus.
  • Handles very large libraries and runs on a Raspberry Pi.

Library and playback

Navidrome reads the tags in your files and handles compilations and multi-disc box sets well. It monitors the library for changes, imports new files and reloads changed metadata. Playlists can be imported from .m3u files, and smart playlists, currently in beta, pick tracks by rules stored in .nsp files. Lyrics come from embedded tags or sidecar files such as .lrc, and plays can be scrobbled to Last.fm and ListenBrainz.

  • Music library
  • Playlists
  • Lyrics
  • Scrobbling

Apps, users and sharing

The built-in web interface is responsive, themeable and translated into many languages. Because Navidrome implements the Subsonic and OpenSubsonic APIs, it works with a wide range of third-party clients for iOS, Android, Windows, macOS and Linux. Each user has their own play counts, playlists and favourites, and libraries can be limited to certain users. Public share links, jukebox mode and external authentication are also available.

  • Web player
  • Subsonic API
  • Multi-user
  • Sharing

Run it yourself under GPL-3.0

Navidrome runs on macOS, Linux and Windows, with ready-made binaries including Raspberry Pi builds and Docker images for amd64 and ARM. The Docker setup mounts a data folder for the database and cache and a read-only music folder, and serves on port 4533. Settings can come from environment variables, command-line arguments or a navidrome.toml file. Navidrome is released under the GPL-3.0 licence, and partner hosts such as PikaPods offer managed hosting that shares revenue with the project.

  • Self-hosted
  • Docker
  • Raspberry Pi
  • GPL-3.0

Where it fits

Use cases

  1. 01

    Listen to your music library away from home

    Run the navidrome/navidrome Docker image with your music folder mounted read-only at /music and a data folder at /data, then open port 4533. Navidrome scans the library, watches it for new files and shows it in the web player. On your phone, install any Subsonic or OpenSubsonic client and point it at the server.

  2. 02

    Run a family music server

    Create a user account for each person, so everyone keeps their own play counts, playlists and favourites. Multi-library support lets you keep collections apart, such as family and personal music, with access set per user. Set transcoding per user or player to save mobile data.

  3. 03

    Send an album to a friend

    Use the Sharing feature to create a public link to a track, album, artist or playlist. Your friend can listen or download without an account on your server. Links expire after one year by default, which you can change with DefaultShareExpiration, and EnableSharing=false turns the feature off.