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: true
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: true
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 67Xip7SIVBdgveI7HPL44N50atqtBpvtI04aWdWVqOZAHgHHpTpkUlfkm5hjsneto
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: 67Xip7SIVBdgveI7HPL44N50atqtBpvtI04aWdWVqOZAHgHHpTpkUlfkm5hjsneto
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.