ConfigsApr 16, 2026·3 min read

Navidrome — Self-Hosted Music Server & Streamer

Navidrome is a lightweight, self-hosted music server compatible with Subsonic clients, letting you stream your entire music collection from anywhere.

Introduction

Navidrome is a lightweight, self-hosted music server and streamer written in Go. It indexes your music library and serves it through a modern web UI and the Subsonic API, letting you use dozens of compatible mobile and desktop apps to stream your collection.

What Navidrome Does

  • Indexes and serves your music library with automatic metadata and artwork scanning
  • Provides a responsive web player with playlists, favorites, and smart filters
  • Implements the Subsonic and OpenSubsonic APIs for broad client compatibility
  • Supports multiple user accounts with individual playlists and play history
  • Handles transcoding on the fly for bandwidth-constrained connections

Architecture Overview

Navidrome is a single Go binary with an embedded SQLite database and a React-based web UI. It scans configured music directories, reads tags via TagLib, and stores metadata in SQLite. The Subsonic API layer handles client communication. Transcoding uses FFmpeg when available for format conversion.

Self-Hosting & Configuration

  • Run via Docker or download the single binary for Linux, macOS, or Windows
  • Mount your music library as a read-only volume at /music
  • Configure ND_SCANSCHEDULE to set how often the library is re-scanned
  • Enable transcoding by ensuring FFmpeg is installed in the container or host
  • Set ND_BASEURL when running behind a reverse proxy at a subpath

Key Features

  • Extremely low resource usage makes it ideal for Raspberry Pi and NAS devices
  • Real-time library scanning detects new music without manual intervention
  • Multi-user support with per-user playlists, ratings, and scrobbling
  • Last.fm and ListenBrainz scrobbling integration for play tracking
  • Supports FLAC, MP3, AAC, OGG, OPUS, and virtually any audio format

Comparison with Similar Tools

  • Jellyfin — full media server for video and music; Navidrome is music-only and lighter
  • Plex — commercial media server; Navidrome is fully open-source with no premium tier
  • Airsonic — Java-based Subsonic server; Navidrome is faster with lower resource usage
  • Funkwhale — federated music platform; Navidrome is simpler personal streaming
  • Koel — PHP music streamer; Navidrome has better Subsonic client ecosystem support

FAQ

Q: What music apps work with Navidrome? A: Any Subsonic-compatible app works, including DSub, Symfonium, play:Sub, Sublime Music, and dozens more across all platforms.

Q: Does it support lyrics and album art? A: Yes. Navidrome reads embedded lyrics and artwork from tags, and can fetch missing artwork from external sources.

Q: Can I run it on a Raspberry Pi? A: Absolutely. Navidrome's Go binary uses minimal CPU and RAM, making it perfect for low-power devices.

Q: How does transcoding work? A: When a client requests a lower bitrate, Navidrome uses FFmpeg to transcode on the fly. Original files are never modified.

Sources

Discussion

Sign in to join the discussion.
No comments yet. Be the first to share your thoughts.

Related Assets