Navidrome
Self-hosted music streaming server. Implements the OpenSubsonic API so any Subsonic-compatible client works.
Compose
services:
navidrome:
image: deluan/navidrome:latest
restart: unless-stopped
ports:
- "4533:4533"
volumes:
- ./data:/data
- /path/to/music:/music:roConfiguration
Navidrome tries to load the configuration from a navidrome.toml file in the current working directory, if it exists. You can create this file and put any of the configuration options below in it. Any configuration option can also be set as an environment variable, just add a the prefix ND_ and make it all uppercase. Ex: ND_LOGLEVEL=debug.
Common Options
| Option | Default | Description |
|---|---|---|
MusicFolder | ./music | Directory containing your music library |
DataFolder | ./data | Where the database and app data are stored |
Port | 4533 | HTTP listening port |
LogLevel | info | Verbosity: error, warn, info, debug, trace |
BaseUrl | — | Set when running behind a reverse proxy with a subpath (e.g. /music) |
SessionTimeout | 48h | Web UI idle session duration |
FFmpegPath | — | Path to ffmpeg binary if auto-detection fails |
TranscodingCacheSize | 100MB | Cache size for transcoded audio |
Scanner.Schedule | — | Cron expression for automatic library scans |
Scanner.WatcherWait | 5s | Delay before scanning after a file change is detected |
CoverArtPriority | — | Search order for artwork (e.g. embedded, cover.jpg) |
DefaultTheme | Dark | Initial theme for new users |
DefaultLanguage | en | UI language on first login |
Multiple Artists
When tagging tracks with multiple artists or collaborators, it’s important to clearly and consistently represent each artist. Navidrome supports both singular (ARTIST and ALBUMARTIST) and plural (ARTISTS and ALBUMARTISTS) tags. However, multi-valued tags (ARTISTS and ALBUMARTISTS) are preferred, as they allow Navidrome to more accurately identify individual artists and improve library organization.