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.
What it is
Navidrome is a lightweight, self-hosted music server that lets you stream your entire music collection from anywhere. It is compatible with the Subsonic API, which means you can use dozens of existing Subsonic client apps on iOS, Android, desktop, and web. Navidrome handles library scanning, transcoding, playlist management, and multi-user access.
Navidrome targets music enthusiasts and homelab operators who want to own their music streaming experience. Instead of paying for a subscription service, you point Navidrome at your music folder and get a personal Spotify-like experience on your own hardware.
Why it saves time or tokens
Setting up a music server traditionally required configuring Plex, Jellyfin, or Airsonic with their complex settings. Navidrome is a single binary or Docker container that scans your music directory and serves it immediately. The Subsonic API compatibility means you do not need to find or build custom client apps. Configuration is minimal: point at a folder, set a port, and start streaming.
How to use
- Deploy Navidrome with Docker:
docker run -d -p 4533:4533 -v /path/to/music:/music deluan/navidrome - Open the web UI at
http://your-server:4533and create an admin account - Connect a Subsonic-compatible client app on your phone or desktop
Example
# docker-compose.yml
version: '3'
services:
navidrome:
image: deluan/navidrome:latest
ports:
- '4533:4533'
environment:
ND_SCANSCHEDULE: 1h
ND_LOGLEVEL: info
ND_BASEURL: ''
volumes:
- ./data:/data
- /path/to/music:/music:ro
restart: unless-stopped
| Feature | Description |
|---|---|
| Library scanning | Automatic periodic scan with metadata |
| Transcoding | On-the-fly format conversion |
| Multi-user | Individual libraries and playlists |
| Subsonic API | Compatible with 30+ client apps |
| Web UI | Built-in responsive web player |
Related on TokRepo
- AI tools for self-hosted — self-hosted applications and services on TokRepo
- AI tools for automation — homelab automation tools
Common pitfalls
- Music files without proper ID3 tags display as unknown artist/album; tag your library with MusicBrainz Picard before importing
- Transcoding requires ffmpeg installed alongside Navidrome; the Docker image includes it, but bare-metal installs may need manual setup
- Exposing Navidrome to the internet requires a reverse proxy with TLS; never run it on a public port without HTTPS
Frequently Asked Questions
Navidrome supports the Subsonic API, which is compatible with apps like DSub and Ultrasonic on Android, play:Sub and Amperfy on iOS, Sonixd and Sublime Music on desktop, and many others. The Navidrome documentation maintains a list of tested compatible clients across all platforms.
Jellyfin is a general-purpose media server handling video, music, and photos. Navidrome is purpose-built for music only, resulting in a simpler setup and better music-specific features like smart playlists and Subsonic API compatibility. If you only need music streaming, Navidrome is the lighter choice.
Yes. Navidrome supports multiple users, each with their own playlists, favorites, play history, and access controls. The admin can manage user accounts through the web interface. Each user connects with their own credentials from any Subsonic client.
Navidrome supports MP3, FLAC, OGG, AAC, WMA, WAV, AIFF, and other common formats. For formats your client cannot play natively, Navidrome transcodes on the fly using ffmpeg. You can configure the target transcode format and bitrate per user or globally.
Yes. Set up a reverse proxy (Nginx, Caddy, or Traefik) with a domain name and TLS certificate to expose Navidrome securely. Alternatively, use a VPN like WireGuard or Tailscale to access your home network. Never expose Navidrome directly without encryption.
Citations (3)
- Navidrome GitHub— Navidrome is a self-hosted music server compatible with Subsonic API
- Navidrome Docs— Navidrome deployment and configuration
- Subsonic API— Subsonic API specification for music streaming
Related on TokRepo
Discussion
Related Assets
Conda — Cross-Platform Package and Environment Manager
Install, update, and manage packages and isolated environments for Python, R, C/C++, and hundreds of other languages from a single tool.
Sphinx — Python Documentation Generator
Generate professional documentation from reStructuredText and Markdown with cross-references, API autodoc, and multiple output formats.
Neutralinojs — Lightweight Cross-Platform Desktop Apps
Build desktop applications with HTML, CSS, and JavaScript using a tiny native runtime instead of bundling Chromium.