When a personal library grows from a handful of folders into hundreds of albums, browsing raw directories starts to feel like rummaging through unmarked crates. At that scale, it helps to have a quiet cataloger—something that reads your embedded tags, cover art, and release years in the background so your collection is ready to browse by artist and album.
Navidrome is an open-source, self-hosted music server built for exactly that role. It stays light on CPU and memory, watches your music folder automatically, and exposes a Subsonic-compatible API. In a self-hosted setup, Navidrome indexes and serves the library while OFPlayer provides the everyday listening interface.
[!NOTE] Reviewed in October 2026 against Navidrome’s Docker installation guide and OFPlayer for Windows (26.0.6), OFPlayer for Android (26.0.2), and the web player.
Navidrome vs. OpenList (WebDAV)
If you are deciding between Navidrome and OpenList, match the server to how you organize your files:
| Aspect | Navidrome (Subsonic API) | OpenList (WebDAV) |
|---|---|---|
| Browsing model | Indexes embedded tags by album, artist, and cover | Shows your exact folder tree on disk |
| Large collections | Fast catalog queries backed by SQLite | Lists directories on demand |
| Multi-user support | Separate user accounts with independent play history | Folder-level read/write permissions |
| Tag requirements | Relies on clean embedded tags (Album, AlbumArtist) |
Only cares about folder and file names |
1. Deploy with Docker Compose
The golden rule of running Navidrome is keeping its writable database directory (/data) separate from your music directory (/music), and mounting your music read-only (:ro). That way, your original audio files cannot be altered or deleted by the server container.
Create a working folder on your server or NAS:
mkdir -p /opt/navidrome/data
cd /opt/navidrome
Create docker-compose.yml, replacing /path/to/music with your host music path and 1000:1000 with a user/group ID that can write to ./data and read your music:
services:
navidrome:
image: deluan/navidrome:latest
container_name: navidrome
user: '1000:1000'
restart: unless-stopped
ports:
- '4533:4533'
volumes:
- ./data:/data
- /path/to/music:/music:ro
environment:
ND_MUSICFOLDER: /music
ND_DATAFOLDER: /data
ND_SCANSCHEDULE: 1h
ND_LOGLEVEL: info
Start the container and watch the initial scan log:
docker compose up -d
docker compose logs -f navidrome
2. Create your account and check tags and artwork
Open http://SERVER_IP:4533 in a browser on your local network. On first visit, Navidrome prompts you to create the administrator account and immediately begins scanning /music.
To keep your catalog clean:
- Consistent tags matter: Navidrome groups tracks by embedded metadata (
Album,Artist,AlbumArtist, andTrackNumber). If a compilation album splits into separate entries, check thatAlbumArtistis set consistently. You can inspect tags right in your browser with the Audio Metadata Viewer. - Artwork and lyrics: Navidrome reads both embedded cover art and
cover.jpg/folder.jpgfiles in the album folder, as well as embedded lyrics and sidecar.lrcfiles. - Separate accounts: If family members share the server, create individual non-admin accounts under Users rather than sharing the administrator login.
3. Connect OFPlayer via Subsonic
When adding Navidrome to OFPlayer, remember that Navidrome connects as a Subsonic source, not WebDAV:
- In OFPlayer for Windows (26.0.6): Open the top-left source picker → Add remote source…, and choose Subsonic.
- In OFPlayer for Android (26.0.2): Tap the add button in the library top bar → Music server, and choose Subsonic.
- Enter your server details: Provide the server URL (such as
http://192.168.1.100:4533, without/rest), your Navidrome username, and password. - Click Test connection, save, and select the new Subsonic source to browse and play.
[!IMPORTANT] What works today & current limits:
- Web player (
/app) and CORS: Connecting from a browser tab requires your Navidrome server or reverse proxy to allow cross-origin requests (CORS). The native Windows and Android apps do not use browser CORS policy.- 5,000-track list cap on Windows: OFPlayer for Windows currently loads up to 5,000 tracks per remote list.
- Playlists and handoff: Two-way playlist sync back to Navidrome is still on the roadmap, while moving active playback between your Windows PC and Android phone already works today via Handoff.
4. Remote access, backups, and upgrades
If you listen outside your home Wi-Fi, place Navidrome behind an HTTPS reverse proxy or access it through a private mesh VPN so credentials are never sent over plain HTTP.
Because your music is mounted read-only, routine maintenance only requires backing up ./data alongside your separate audio backups. Before upgrading (docker compose pull && docker compose up -d), archive ./data so you always have a clean rollback point if a database migration changes between releases.
For more details on remote sources and diagnostics, continue to Connect OFPlayer to a remote library and Remote music sources.