Navidrome

Navidrome

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