TiloBox
Back to directory
Navidrome project preview

Navidrome

A self-hosted music server with browser playback, library scanning, playlists, users, and Subsonic-compatible clients.

LicenseGPL-3.0
GitHub stars23.1k
Last commit1 weeks ago
Tags7 topics
SubsonicGoMusic ServerProductivitySelf HostedOpen SourceDeveloper Tools
Overview

Why consider Navidrome?

Navidrome is an open-source, self-hosted music server and streamer providing lightweight Subsonic API compatibility and responsive web playback.

Guided learning

Learn Navidrome by building

Practical setup notes, real use cases, and copy-ready examples in one focused guide.

4 min read 4 sections
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:

yaml
1services:
2 navidrome:
3 image: deluan/navidrome:latest
4 user: 1000:1000 # must own the data folder and be able to read music folder(s). See Permissions below
5 ports:
6 - "4533:4533"
7 restart: unless-stopped
8 environment:
9 # Optional: put your config options customization here. Examples:
10 # ND_LOGLEVEL: debug
11 volumes:
12 - "/path/to/data:/data"
13 - "/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:

bash
1docker compose run --rm navidrome scan --full

To view all configured user accounts and their administrative roles in JSON format via the CLI documented in the Navidrome CLI reference, execute:

bash
1navidrome user list --format json

Automated 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:

bash
1navidrome backup prune --keep-count 7

Exploring 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.

Navidrome FAQs

Navidrome is listed as a Media tool on TiloBox. Review the overview, features, and official documentation on this page to decide whether it solves your specific workflow.

Start with the project's GitHub repository and official website for supported installation and deployment instructions. Test the setup with representative data or a small project before rolling it out more widely.

Navidrome is listed under the GPL-3.0 license. Read the complete license text and the project's notices before using, modifying, or distributing the software.

Production readiness depends on your requirements. Review maintenance activity, security practices, documentation, backup and upgrade procedures, and compatibility with your stack; then validate it in a non-production environment.

Navidrome is listed as an alternative to Spotify. Compare the core workflow, deployment model, integrations, and licensing against your must-have requirements before switching.