WHAT IS IT?
Navidrome is a self-hosted music streaming server written in Go and shipped as a self-contained binary. It scans a library of audio files, reads their metadata, and exposes everything through a React web UI and the OpenSubsonic API. Where a general-purpose media server handles every kind of content, Navidrome only does music: the trade-off buys you proper handling of compilations, multi-disc albums and tags.
WHY IS IT INTERESTING?
- Genuinely light: the project claims it runs fine on a Raspberry Pi Zero and on old hardware. One binary to launch, no external database to provision.
- OpenSubsonic API: this is the de facto standard for self-hosted music. Any Subsonic, Madsonic or Airsonic client connects, which opens up a wide range of iOS and Android apps the project does not have to maintain itself.
- Large libraries: tested against roughly 900,000 tracks, two thirds FLAC and one third MP3, with automatic folder monitoring to pick up new files and reload metadata.
- Smart playlists: dynamic playlists in the spirit of iTunes, on top of automatic import of .m3u files.
- Multi-user and multi-library: per-user play counts, favourites and playlists, with separate libraries and distinct access rights, for instance music on one side and audiobooks on the other.
USE CASES
- Listening to a FLAC collection from a phone through a Subsonic client, with on-the-fly Opus transcoding to spare the data plan
- Running a music server on a Raspberry Pi or an entry-level NAS
- Splitting music and audiobooks into two libraries with different access per household member
- Sharing an album or a playlist through a public link
- Scrobbling plays to Last.fm, ListenBrainz or Maloja
