Navidrome
A self-hosted music server with browser playback, library scanning, playlists, users, and Subsonic-compatible clients.
Why consider Navidrome?
Navidrome is an open-source, self-hosted music server and streamer providing lightweight Subsonic API compatibility and responsive web playback.
Learn Navidrome by building
Practical setup notes, real use cases, and copy-ready examples in one focused guide.
In this guide4 sections
Navidrome: Self-Hosted Music Server and Subsonic Streamer
Navidrome is a lightweight personal audio streaming platform designed for self-hosters managing private digital music libraries. Navidrome can be used as a standalone server to browse and listen to music collections using a web browser. This allows users to enjoy their curated media from modern browsers without relying on commercial subscription streaming platforms.
Beyond its standalone web interface, it operates as a lightweight Subsonic-API compatible server compatible with Subsonic client applications. This interoperability enables native playback across mobile, desktop, and automotive players like Symfonium, DSub, and Amperfy across iOS, Android, macOS, Linux, and Windows.
A primary benefit of the application is its minimal footprint on host systems. Navidrome achieves very low resource usage and runs efficiently on simple Raspberry Pi Zero devices. Its optimized Go backend and SQLite database store metadata cleanly without placing heavy CPU or memory demands on home server hardware.
To organize varied music libraries and podcasts across different household members, the system provides multi-library support with user-specific access controls to separate distinct audio collections. Administrators can isolate family music from personal audiobooks while keeping permissions segregated per user account.
Bandwidth conservation is maintained across mobile connections through dynamic audio conversion. Audio streams can be transcoded on the fly per player with support for Opus encoding. Each client or user profile can define dedicated downsampling and format conversion rules to minimize mobile data consumption.
For community tracking and listening statistics, listening activity can be scrobbled directly to Last.fm, ListenBrainz, and Maloja. Tracks played via the web interface or connected third-party Subsonic clients automatically update your chosen scrobbling profile.
Deploying Navidrome with Docker Compose
For containerized deployments, official Docker images are published for linux/amd64, linux/arm/v6, linux/arm/v7, and linux/arm64 architectures. This allows consistent deployment across standard x86 servers, ARM single-board computers, and NAS devices.
Running Navidrome with docker-compose uses a service configuration specifying image, port bindings, and storage volumes. The following docker-compose.yml service definition configures storage volumes, user permissions, and port exposure according to the official documentation on Navidrome Docker installation:
services: navidrome: image: deluan/navidrome:latest user: 1000:1000 # must own the data folder and be able to read music folder(s). See Permissions below ports: - "4533:4533" restart: unless-stopped environment: # Optional: put your config options customization here. Examples: # ND_LOGLEVEL: debug volumes: - "/path/to/data:/data" - "/path/to/your/music/folder:/music:ro"When configuring container volumes, the Navidrome container requires read and write access to the data folder to manage its database and cache. The music library volume can remain mounted in read-only mode to prevent accidental modifications to original audio files.
Library Management and CLI Operations
In addition to web administration, Navidrome includes a built-in CLI for administration tasks, maintenance, and troubleshooting. Server administrators can trigger deep library scans, manage user accounts, and execute backup workflows straight from terminal sessions.
A full library scan checks all subfolders while ignoring cached file timestamps. To force a complete re-scan of all subdirectories and update audio tags, run:
docker compose run --rm navidrome scan --fullTo view all configured user accounts and their administrative roles in JSON format via the CLI documented in the Navidrome CLI reference, execute:
navidrome user list --format jsonAutomated Maintenance and Backups
The CLI backup prune command keeps a specified count of newest database backups. To prune historical backup archives and retain only the seven most recent snapshots as outlined in the Navidrome CLI reference, run:
navidrome backup prune --keep-count 7Exploring the Ecosystem and Source Code
Navidrome is open source software distributed free of charge under the GNU GPL v3 license. Navidrome is maintained as an active open-source project hosted on GitHub and published on the official Navidrome website. The software license terms can be reviewed in the Navidrome LICENSE, with tagged release binaries published on Navidrome Release v0.63.2.
Related tools
More options with a similar category or technology profile.
MyPaint
Nimble, distraction-free, and easy graphic application for digital painters.
Pencil2D
Easy, intuitive traditional hand-drawn 2D animation software across raster and vector.
Hydrogen
Advanced open-source drum machine and pattern-based step sequencer for audio production.
Pure Data
Open source visual programming language for multimedia, audio, and physical computing.