Navidrome ist ein webbasierter Server für Musikstreaming, ist Open Source und freie Software. Um Musik vom Navidrome Server zu streamen, kann man einfach die Weboberfläche im Browser öffnen. Es gibt aber auch dedizierte Apps und Clients, mit welchen man die Musik abrufen kann.
0. Versionierung
| Datum | Änderung |
| 31.10.2023 | Erstellung der Anleitung |
1. Grundvorraussetzung
- Docker & Docker Compose v2 (Debian / Ubuntu)
- TRAEFIK V2 + 3 – REVERSE-PROXY MIT CROWDSEC IM STACK EINRICHTEN
2. Ordner anlegen
Zuerst legen wir uns die passende Ordner-Struktur an.
mkdir -p /opt/containers/navidrome
3. Docker Compose anlegen
Nun legen wir die eigentliche Docker Datei an.
nano /opt/containers/navidrome/docker-compose.yml
Inhalt:
services:
navidrome:
image: deluan/navidrome:latest
container_name: navidrome
restart: unless-stopped
environment:
PUID: 1000
PGID: 1000
TZ: Europe/Berlin
ND_CONFIGFILE: ""
volumes:
- ./data:/data
- ./music:/music:ro
labels:
- "traefik.enable=true"
- "traefik.http.routers.navidrome.entrypoints=websecure"
- "traefik.http.routers.navidrome.rule=(Host(`navidrome.euredomain.de`))"
- "traefik.http.routers.navidrome.tls=true"
- "traefik.http.routers.navidrome.tls.certresolver=http_resolver"
- "traefik.http.routers.navidrome.service=navidrome"
- "traefik.http.services.navidrome.loadbalancer.server.port=4533"
- "traefik.docker.network=proxy"
- "traefik.http.routers.navidrome.middlewares=default@file"
networks:
- proxy
networks:
proxy:
external: trueCode-Sprache: PHP (php)
Noch anzupassen:
- Eure Traefik URL (navidrome.euredomain.de)
- PUID und PGID anpassen. Die Einträge können auskommentiert werden.
- Weitere Einstellmöglichkeiten sind unter “Navidrome Configuration Options” aufgeführt.
3.1 Konfigurationsdatei anlegen
mit dem nachfolgenden Befehl legen wir die Konfigurationsdatei an. Wir belassen den Standardnamen und den Ort. Darum bleibt in der Docker Compose die Syntax “ND_CONFIGFILE” ohne Veränderung.
nano /opt/containers/navidrome/navidrome.toml
Und fügen folgenden Inhalt ein:
# Optional: put your config options customization here. Examples:
# https://www.navidrome.org/docs/usage/configuration-options/#available-options
SCANSCHEDULE: 1h
LOGLEVEL: info
SESSIONTIMEOUT: 24h
BASEURL: ""
ENABLEDOWNLOADS: true
DEFAULTLANGUAGE: "de"
ENABLESHARING: trueCode-Sprache: PHP (php)
3.2 Erhöhung der Sicherheit durch selbstgenerierten PasswordEncryptionKey
Im Standard wird der aus dem Code entnommen. Mehr Informationen hierzu könnt Ihr hier nachlesen. “https://www.navidrome.org/docs/usage/security/”
Wir erstellen ein sicheres 64 Zeichen langes Passwort:
#pwgen installieren, wenn nicht bereits für andere Anwendungen geschehen
apt -y install pwgen
#Passwort generieren
pwgen -s 64 1
#Beispiel Ausgabe
67Xip7SIVBdgveI7HPL44N50atqtBpvtI04aWdWVqOZAHgHHpTpkUlfkm5hjsnetoCode-Sprache: CSS (css)
Nun öffnen wir unsere eben kopierte Konfigurationsdatei und passen diese an:
nano /opt/containers/navidrome/navidrome.toml
Folgendes muss dort angepasst werden:
# Optional: put your config options customization here. Examples:
# https://www.navidrome.org/docs/usage/configuration-options/#available-options
SCANSCHEDULE: 1h
LOGLEVEL: info
SESSIONTIMEOUT: 24h
BASEURL: ""
ENABLEDOWNLOADS: true
DEFAULTLANGUAGE: "de"
ENABLESHARING: true
# Dieser Eintrag kommt mit Eurem Paßwort dazu
PASSWORDENCRYPTIONKEY: 67Xip7SIVBdgveI7HPL44N50atqtBpvtI04aWdWVqOZAHgHHpTpkUlfkm5hjsnetoCode-Sprache: PHP (php)
4. Navidrome starten
Den Server startet ihr wie gewohnt mit folgendem Befehl:
docker compose -f /opt/containers/navidrome/docker-compose.yml up -d
Es dauert ein wenig bis der Container komplett gestartet ist. Wenn ihr nun auf eure Webseite geht, solltet ihr folgendes sehen:
Hier wird zuerst der Admin User angelegt.

Bedienoberfläche nach Anmeldung.

App für die Nutzung über Android.

Viel Spaß damit.
