Navidrome auf dem Synology NAS installieren: eigener Musikserver als Spotify-Alternative
Navidrome verwandelt deine FLAC- und MP3-Sammlung auf dem Synology NAS in einen Streaming-Server ohne Abo. Mit der Subsonic-API streamst du auf iOS, Android, CarPlay und Android Auto. Diese Anleitung zeigt den Weg mit Compose-Projekt, read-only Musikbibliothek und Verifikation nach jedem Schritt.

Spotify kostet Geld, kennt deinen Musikgeschmack bis ins Detail und hat trotzdem nicht jedes Album in deiner Sammlung. Wer eine eigene digitale Musikbibliothek – vorzugsweise in verlustfreiem FLAC – sein Eigen nennt, braucht kein Streaming-Abo. Navidrome ist ein schlanker, selbst gehosteter Musikserver auf Go-Basis, der genau das liefert: Deine Sammlung, streambar über jeden Browser und über hunderte Subsonic-kompatible Apps auf iOS, Android, CarPlay und Android Auto. Das NAS läuft ohnehin durch – warum nicht auch als Musikserver? Diese Anleitung richtet Navidrome als Container Manager-Projekt auf dem Synology NAS ein, mit read-only gemounteter Bibliothek, automatischem Scan-Schedule und handfester Verifikation nach jedem Schritt.
Voraussetzungen
- Synology NAS mit DSM 7.2 oder neuer (x86_64- oder ARM64-Modell)
- Container Manager aus dem Synology Package Center installiert (kostenlos)
- Musiksammlung auf dem NAS – idealerweise FLAC, MP3 oder AAC mit korrekt gesetzten ID3/FLAC-Tags (Navidrome browst nach Tags, nicht nach Ordnernamen)
- SSH-Zugang zum NAS für die PUID/PGID-Ermittlung
- Port 4533 TCP in der DSM-Firewall freigegeben
- Optional: Domain mit SSL-Zertifikat (Let's Encrypt via Synology) für den Zugriff von unterwegs
Eckdaten auf einen Blick
| Parameter | Wert |
|---|---|
| Image | deluan/navidrome:latest (Docker Hub; aktuell v0.62.0) |
| Architektur | linux/amd64, linux/arm64, linux/arm/v7, linux/arm/v6 |
| Image-Größe | ca. 78 MB |
| Port | 4533/TCP (Web-UI + Subsonic-API) |
| Daten-Volume | /volume1/docker/navidrome:/data |
| Musik-Volume | /volume1/music:/music:ro |
| Lizenz | GPL-3.0 |
| ffmpeg | im Image enthalten (Transcoding ohne Extra-Container) |
| Umgebungsvariable | Beispielwert | Bedeutung |
|---|---|---|
ND_MUSICFOLDER | /music | Pfad zur Musikbibliothek im Container (Pflicht) |
ND_DATAFOLDER | /data | Datenordner für SQLite-DB und Cache (Pflicht) |
ND_LOGLEVEL | info | Log-Level: error / warn / info / debug / trace |
ND_SCANNER_SCHEDULE | @every 24h | Cron-Syntax für automatischen Library-Scan (Standard: deaktiviert) |
ND_TRANSCODINGCACHESIZE | 150MB | Transcoding-Cache-Größe (Standard: 100 MB) |
ND_DEFAULTTHEME | Dark | Standard-Theme für neue Browser-Logins |
ND_BASEURL | leer | Nur bei Reverse-Proxy-Betrieb unter Unterpfad setzen |
ND_LASTFM_APIKEY | leer | Last.fm-API-Key für Scrobbling und Metadaten (optional) |
Schritt 1: Ordner anlegen und PUID/PGID ermitteln
Öffne die File Station und lege zwei Ordner an: /volume1/docker/navidrome für die Navidrome-Datenbank und den Cache sowie /volume1/music als Musikbibliothek (oder nutze einen bereits bestehenden Musik-Shared-Folder). Lege den Musikordner bewusst außerhalb von /volume1/docker/ an – das hält die Trennung zwischen App-Daten und Inhalten sauber und vereinfacht separate Backups.
Aktiviere SSH und verbinde dich mit dem NAS (Schritt für Schritt: SSH auf dem Synology NAS aktivieren und verbinden). Ermittle dann deine PUID und PGID mit:
id deinBenutzername
Die Ausgabe sieht etwa so aus:
uid=1026(deinBenutzername) gid=100(users) groups=100(users),101(administrators)
Notiere uid=1026 als PUID und 100 (die primäre Gruppe users) als PGID. Diese Werte trägst du gleich im Compose ein. Eine ausführliche Erklärung zum Thema Ordner und Berechtigungen findest du unter Docker-Ordner und Berechtigungen auf dem Synology NAS.
Verifizieren: Beide Ordner sind in der File Station sichtbar. Im Terminal gibt ls -la /volume1/docker/navidrome den Ordner ohne Fehler zurück, und id liefert deine UID/GID-Werte.
Schritt 2: compose.yaml erstellen
Lege im Ordner /volume1/docker/navidrome eine Datei compose.yaml mit folgendem Inhalt an. Ersetze 1026:100 durch deine tatsächlichen PUID:PGID-Werte aus Schritt 1:
services:
navidrome:
image: deluan/navidrome:latest
container_name: navidrome
user: "1026:100" # PUID:PGID des Synology-Benutzers
ports:
- "4533:4533"
restart: unless-stopped
environment:
ND_MUSICFOLDER: /music
ND_DATAFOLDER: /data
ND_LOGLEVEL: info
ND_SCANNER_SCHEDULE: "@every 24h"
ND_TRANSCODINGCACHESIZE: 150MB
ND_DEFAULTTHEME: Dark
# ND_BASEURL: "" # Nur fuer Reverse-Proxy-Betrieb setzen
# ND_LASTFM_APIKEY: "" # Optional: Last.fm-Scrobbling
# ND_LASTFM_SECRET: ""
volumes:
- /volume1/docker/navidrome:/data
- /volume1/music:/music:ro
Wichtige Designentscheidungen dieser Konfiguration im Überblick:
user: "1026:100"– Die direkteuser-Direktive ist die korrekte Methode laut offizieller Navidrome-Dokumentation. Das PUID/PGID-Muster als Umgebungsvariable wertet das offizielle Image nicht nativ aus./volume1/music:/music:ro– Das:ro-Flag erzwingt read-only auf Container-Ebene. Navidrome schreibt by design nie in die Musikdateien; das Flag ist eine zusätzliche Sicherheitsebene.restart: unless-stopped– Der Container startet nach einem NAS-Neustart automatisch neu, aber nicht nach einem manuellen Stopp – das ist sauberer alsalwaysbei Wartungsarbeiten.ND_SCANNER_SCHEDULE: "@every 24h"– Ohne diesen Wert ist der automatische Scan standardmäßig deaktiviert; du müsstest ihn manuell im Admin-Panel anstoßen.
Verifizieren: Öffne die Datei in einem Texteditor und prüfe, dass user: deine korrekten UID:GID-Werte enthält und der Musikpfad mit dem tatsächlichen Ordner auf deinem NAS übereinstimmt.
Schritt 3: Compose-Projekt im Container Manager anlegen und starten
Öffne den Container Manager in DSM, wechsle zu Projekt und lege ein neues Projekt an. Wie du ein Compose-Projekt Schritt für Schritt anlegst, erklärt die Grundanleitung Container Manager: Docker-Compose-Projekt anlegen, starten und aktualisieren. Wähle als Quellordner /volume1/docker/navidrome – der Container Manager liest die dort liegende compose.yaml direkt ein.
Klicke auf Erstellen bzw. Starten. Der Container Manager lädt das Image deluan/navidrome:latest herunter (ca. 78 MB) und startet den Container.
Verifizieren: Im Container Manager zeigt der Container den Status Läuft (grünes Symbol). Im Reiter Protokoll erscheinen Zeilen wie:
INFO Navidrome server is ready. port=4533
INFO Starting library scan
INFO Finished library scan. totalDuration=...
Alternativ prüfst du per SSH mit docker logs navidrome. Fehlt die Scan-Zeile, hat Navidrome noch keine Musikdateien gefunden – das klären wir im Troubleshooting-Abschnitt.
Schritt 4: Firewall-Regel für Port 4533 anlegen
Damit die Web-UI und Subsonic-Apps den Server erreichen können, muss Port 4533/TCP in der DSM-Firewall freigegeben sein. Den genauen Weg zeigt die Grundanleitung DSM-Firewall auf dem Synology NAS: Ports für Docker-Container freigeben.
Kurz: Systemsteuerung → Sicherheit → Firewall → Profil bearbeiten → Regel hinzufügen – Protokoll TCP, Quellport beliebig, Zielport 4533, Aktion Zulassen.
Verifizieren: Öffne einen Browser im selben Netzwerk und rufe http://NAS-IP:4533 auf. Du siehst den Navidrome-Login-Screen oder – beim ersten Start – die Aufforderung, einen Admin-Account anzulegen.
Schritt 5: Erstkonfiguration und Admin-Account anlegen
Beim allerersten Aufruf von http://NAS-IP:4533 fordert Navidrome dich auf, einen Administrator-Account zu erstellen. Wähle einen sicheren Benutzernamen und ein starkes Passwort – dieser Account hat vollen Zugriff auf alle Bibliotheks- und Benutzereinstellungen.
Nach dem Login öffnet sich die Web-UI. Navigiere zu Administration → Bibliothek (das Schraubenschlüssel-Symbol oben rechts). Dort siehst du:
- Den konfigurierten Musikpfad (
/music) - Den aktuellen Scan-Status mit Anzahl der gefundenen Tracks, Alben und Künstler
- Den Zeitplan des nächsten automatischen Scans
Wenn der erste Scan noch läuft, erkennst du das an einem Ladeindikator. Für eine große Bibliothek (mehrere tausend Tracks) kann der erste Scan einige Minuten dauern. Unter Administration → Transkodierung sind die ffmpeg-basierten Transcoding-Profile bereits eingetragen – FLAC zu MP3 oder Opus für mobile Clients mit begrenzter Bandbreite steht sofort zur Verfügung.
Verifizieren: Unter Administration → Bibliothek zeigt Navidrome eine Zahl größer als 0 für Tracks. Die Künstler- und Albumansichten in der Hauptnavigation sind befüllt. Falls die Bibliothek leer bleibt, lies den Troubleshooting-Abschnitt zur Tag-Problematik.
Schritt 6: Subsonic-App verbinden
Navidrome implementiert die OpenSubsonic-API vollständig. Empfohlene Apps:
| Plattform | App | Kosten | Besonderheit |
|---|---|---|---|
| Android | DSub | kostenlos | Klassiker, stabil, offline-Sync |
| Android | Symfonium | kostenpflichtig | beste UI, CarPlay/Android Auto |
| Android | Ultrasonic | kostenlos | Open Source, solide |
| iOS | Substreamer | kostenpflichtig | native iOS-Optik, CarPlay |
| iOS | Amperfy | kostenlos | Open Source, aktiv gepflegt |
Die Verbindung richtest du in der App wie folgt ein:
- Server-URL:
http://NAS-IP:4533– ohne abschließendes/rest/; die App ergänzt den API-Pfad selbst - Benutzername und Passwort: der in Schritt 5 angelegte Admin-Account oder ein eigener Benutzer-Account
- HTTPS von unterwegs: Für den Zugriff außerhalb des Heimnetzes empfiehlt sich ein Reverse Proxy mit Let's Encrypt-Zertifikat – etwa über den Nginx Proxy Manager auf der Synology. Manche iOS-Apps verweigern unverschlüsselte Verbindungen von außerhalb.
Verifizieren: Die App zeigt nach dem Verbinden die Bibliothek mit Künstlern und Alben an. Starte einen Track – er spielt ab und das Transcoding-Profil greift, sofern die App es anfordert. Im Navidrome-Admin unter Administration → Jetzt läuft erscheint der aktuell streamende Track.
Scan-Log prüfen und Library-Scan manuell anstoßen
Neben dem automatischen 24-Stunden-Schedule kannst du einen Scan jederzeit manuell anstoßen. Im Navidrome-Admin unter Administration → Bibliothek klicke auf Bibliothek neu scannen. Die Detaillogs erscheinen im Container-Log:
docker logs navidrome --tail 50
Ein erfolgreicher Scan endet mit einer Zeile wie:
INFO Finished library scan totalDuration=12.34s totalTracks=4821
Möchtest du einen häufigeren Scan, etwa stündlich, passe ND_SCANNER_SCHEDULE in der compose.yaml an – zum Beispiel auf @every 1h – und starte das Projekt im Container Manager neu.
Troubleshooting / Typische Fehler
- „Permission denied" beim Container-Start: Der
user:-Wert im Compose stimmt nicht mit dem Besitzer der Ordner überein. Prüfe per SSH mitls -la /volume1/docker/undls -la /volume1/music, wem die Ordner gehören, und passe PUID:PGID entsprechend an. - Bibliothek bleibt leer nach dem Scan: Navidrome liest Tags, keine Ordnernamen. Dateien ohne ID3v2- oder FLAC-Tags werden ignoriert oder falsch einsortiert. Tagge die Bibliothek vorher mit MusicBrainz Picard oder beets.
- Scan läuft nie automatisch:
ND_SCANNER_SCHEDULEist standardmäßig0(deaktiviert). Stelle sicher, dass du@every 24hoder eine Cron-Syntax wie0 3 * * *eingetragen hast. - Subsonic-App verbindet sich nicht: Trage die Server-URL ohne
/rest/ein – alsohttp://NAS-IP:4533. Die App ergänzt den API-Endpunkt selbst. Prüfe außerdem, ob Port 4533 in der DSM-Firewall freigegeben ist. - Web-UI lädt nicht, obwohl Container läuft: Die Synology-Firewall blockiert Port 4533. Lege die Regel laut Schritt 4 an.
- iOS-App verweigert Verbindung: Viele iOS-Apps fordern HTTPS. Schalte einen Reverse Proxy mit Let's Encrypt vor. Der
ND_BASEURL-Parameter muss dabei gesetzt sein, falls Navidrome unter einem Unterpfad erreichbar ist. - FLAC-Transcoding funktioniert nicht: ffmpeg ist im offiziellen
deluan/navidrome-Image bereits enthalten. Ein separater ffmpeg-Container ist nicht nötig. Prüfe unter Administration → Transkodierung, ob das gewünschte Profil aktiv ist. - Container startet nach NAS-Neustart nicht:
restart: unless-stoppedsorgt für automatischen Neustart. Falls der Container trotzdem nicht startet, prüfe mitdocker logs navidromeauf Permission-Fehler. - SQLite-Datenbankfehler nach unsauberem Shutdown: Schalte das NAS nie während eines aktiven Scans hart aus. Sichere
/volume1/docker/navidrome/navidrome.dbregelmäßig per Hyper Backup.
Häufige Fragen
Welche Subsonic-Apps funktionieren am besten mit Navidrome?
Für Android sind DSub (kostenlos, stabil) und Symfonium (kostenpflichtig, beste Oberfläche mit Android-Auto-Integration) die Empfehlungen. Für iOS bieten Substreamer und Amperfy native iOS-Optik und CarPlay-Unterstützung. Alle genannten Apps unterstützen die OpenSubsonic-API und verbinden sich ohne Konfigurationsaufwand mit Navidrome.
Kann ich mehrere Musikordner einbinden?
Ja – ab Navidrome v0.50 gibt es Multi-Library-Support. Binde weitere Ordner als zusätzliche Volumes ein (z. B. /volume1/hoerbuecher:/audiobooks:ro) und konfiguriere sie in der Admin-Oberfläche als separate Bibliotheken. Damit lassen sich Hörbücher und Musik sauber trennen – eine schöne Ergänzung zum Audiobookshelf auf dem Synology NAS, das speziell für Hörbücher und Podcasts optimiert ist.
Werden meine Musikdateien verändert oder kopiert?
Nein. Navidrome schreibt by design nie in den Musikordner. Das :ro-Flag beim Volume-Mount erzwingt dies zusätzlich auf Container-Ebene. Metadaten-Änderungen über die Navidrome-UI sind nicht möglich – Tags müssen extern bearbeitet werden.
Wie erkenne ich, ob der Library-Scan erfolgreich war?
Im Navidrome-Admin unter Administration → Bibliothek siehst du Scan-Status, Anzahl gefundener Tracks und eventuelle Fehler. Detailliertere Informationen liefert docker logs navidrome – dort ist jeder gescannte Ordner und jede Fehlerquelle aufgeführt. Bei ND_LOGLEVEL=debug sind sogar einzelne Dateizugriffe sichtbar.
Wie sichere ich Navidrome korrekt?
Nur der /data-Ordner (/volume1/docker/navidrome) muss gesichert werden – er enthält die SQLite-Datenbank navidrome.db mit Playlists, Ratings und Nutzerdaten sowie den Transcoding-Cache. Die Musikdateien selbst sicherst du unabhängig davon. Synologys Hyper Backup kann den Docker-Ordner auf eine externe Festplatte oder einen Cloud-Speicher sichern.
Was ist der Unterschied zwischen Navidrome und Jellyfin für Musik?
Jellyfin ist ein umfassender Media-Server für Video, Musik, Fotos und Bücher mit Hardware-Transcoding-Support. Navidrome ist ausschließlich auf Musik spezialisiert und deutlich schlanker (78 MB Image). Wer primär Musik streamt und das Subsonic-App-Ökosystem nutzen möchte, ist mit Navidrome besser bedient. Wer Video und Musik in einer Oberfläche vereinen möchte, schaut sich Jellyfin auf dem Synology NAS mit Hardware-Transcoding an.
Fazit
Navidrome ist der unkomplizierteste Weg, eine eigene FLAC-Sammlung auf dem Synology NAS streambar zu machen – ohne Abo, ohne Datenweitergabe, ohne Cloud-Lock-in. Das Image ist mit ~78 MB winzig, der Ressourcenverbrauch minimal, und das Subsonic-Ökosystem bietet für jede Plattform eine passende App. Die hier gezeigte Konfiguration mit read-only gemounteter Bibliothek, korrekter user:-Direktive und automatischem Scan-Schedule entspricht den Empfehlungen der offiziellen Dokumentation – und weicht bewusst von einigen verbreiteten Tutorials ab, die PUID/PGID als Umgebungsvariablen setzen oder das :ro-Flag weglassen. Wer seine Musik einmal sauber getaggt hat, bekommt mit Navidrome eine Bibliothekserfahrung, die sich nicht hinter kommerziellen Streamingdiensten verstecken muss.
Weiterführende Anleitungen und Quellen
- Jellyfin auf Synology NAS mit Intel-QuickSync-Hardware-Transcoding einrichten – für den umfassenden Media-Server mit Video-Support
- Audiobookshelf auf dem Synology NAS installieren – eigener Hörbuch- und Podcast-Server als Ergänzung zum Musik-Stack
- qBittorrent auf dem Synology NAS installieren – Torrent-Client für legale Downloads in die Musikbibliothek
- Nginx Proxy Manager auf der Synology einrichten – Reverse Proxy mit SSL für den Zugriff von unterwegs
Offizielle Quellen: Navidrome Docker-Installationsdokumentation | Navidrome Konfigurationsoptionen | deluan/navidrome auf Docker Hub | Navidrome GitHub Repository