# 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. ## Install Save in your project root: # Navidrome — Self-Hosted Music Server & Streamer ## Quick Use ```bash docker run -d --name navidrome -p 4533:4533 -v /path/to/music:/music:ro -v navidrome-data:/data deluan/navidrome # Open http://localhost:4533 and create your admin account ``` ## 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 - https://github.com/navidrome/navidrome - https://www.navidrome.org/docs/ --- Source: https://tokrepo.com/en/workflows/a70ba942-39c1-11f1-9bc6-00163e2b0d79 Author: AI Open Source