Zum Hauptinhalt springen
S-EDV news
← Alle Anleitungen
📘 Anleitung Synology / NAS 11.09.2026 · 10 min Lesezeit

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.

Navidrome: Musik streamen. Eigene Sammlung, Musik im Browser, Subsonic-Apps. Illustration mit Laptop und NAS. KI-generiert

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

ParameterWert
Imagedeluan/navidrome:latest (Docker Hub; aktuell v0.62.0)
Architekturlinux/amd64, linux/arm64, linux/arm/v7, linux/arm/v6
Image-Größeca. 78 MB
Port4533/TCP (Web-UI + Subsonic-API)
Daten-Volume/volume1/docker/navidrome:/data
Musik-Volume/volume1/music:/music:ro
LizenzGPL-3.0
ffmpegim Image enthalten (Transcoding ohne Extra-Container)
UmgebungsvariableBeispielwertBedeutung
ND_MUSICFOLDER/musicPfad zur Musikbibliothek im Container (Pflicht)
ND_DATAFOLDER/dataDatenordner für SQLite-DB und Cache (Pflicht)
ND_LOGLEVELinfoLog-Level: error / warn / info / debug / trace
ND_SCANNER_SCHEDULE@every 24hCron-Syntax für automatischen Library-Scan (Standard: deaktiviert)
ND_TRANSCODINGCACHESIZE150MBTranscoding-Cache-Größe (Standard: 100 MB)
ND_DEFAULTTHEMEDarkStandard-Theme für neue Browser-Logins
ND_BASEURLleerNur bei Reverse-Proxy-Betrieb unter Unterpfad setzen
ND_LASTFM_APIKEYleerLast.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 direkte user-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 als always bei 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:

PlattformAppKostenBesonderheit
AndroidDSubkostenlosKlassiker, stabil, offline-Sync
AndroidSymfoniumkostenpflichtigbeste UI, CarPlay/Android Auto
AndroidUltrasonickostenlosOpen Source, solide
iOSSubstreamerkostenpflichtignative iOS-Optik, CarPlay
iOSAmperfykostenlosOpen 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 mit ls -la /volume1/docker/ und ls -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_SCHEDULE ist standardmäßig 0 (deaktiviert). Stelle sicher, dass du @every 24h oder eine Cron-Syntax wie 0 3 * * * eingetragen hast.
  • Subsonic-App verbindet sich nicht: Trage die Server-URL ohne /rest/ ein – also http://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-stopped sorgt für automatischen Neustart. Falls der Container trotzdem nicht startet, prüfe mit docker logs navidrome auf Permission-Fehler.
  • SQLite-Datenbankfehler nach unsauberem Shutdown: Schalte das NAS nie während eines aktiven Scans hart aus. Sichere /volume1/docker/navidrome/navidrome.db regelmäß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

Offizielle Quellen: Navidrome Docker-Installationsdokumentation | Navidrome Konfigurationsoptionen | deluan/navidrome auf Docker Hub | Navidrome GitHub Repository