Navidrome
Besser als Spotify? Navidrome = ein selbst gehosteter Musikserver für daheim und unterwegs!
Bildquelle: chatGPT

Mit Navidrome & Tailscale einen Musikserver selbst hosten – Spotify im Eigenbau

Navidrome ist ein selbst gehosteter Musikserver, mit dem du deine eigene Musiksammlung streamen kannst – egal ob zu Hause oder unterwegs.

Wie versprochen, beschäftigen wir uns in Teil 2 der Spotify-Reihe mit alternativen Möglichkeiten, Musik selbst zu hosten. Da die meisten Adguard Home, Pi-Hole oder einen Technitium DNS auf einem Raspberry Pi betreiben, warum nicht diesen als Grundlage nehmen und mit der Open Source Software Navidrome einen eigenen kleinen Musikserver hosten?

Navidrome = Musik für daheim und unterwegs

Musik kann man schließlich auch fernab von Spotify genießen, ebenso wie Hörbücher. Schwieriger wird es bei exklusiven Podcasts, für die sich nur schwer eine Alternative finden lässt. Wer wirklich auf Spotify verzichten möchte und die Kontrolle wieder selbst übernehmen will, weiß, dass sich Hörbücher, Podcasts und Co. auch über einen Free-Account mit den in Teil eins genannten Programmen herunterladen lassen, um unabhängig von der Spotify-Infrastruktur zu sein.

Wer eine Seedbox besitzt, hat mit Plex oder Jellyfin natürlich einen Server zur Verfügung, welchen man zur Verwaltung und Verteilung seiner Sammlung nutzen kann. Das ist allerdings mit zusätzlichen Kosten verbunden. Selbstverständlich kann man beides auch zu Hause mit derselben Struktur erreichen, mit der man Navidrome hinter CG-NAT erreichbar macht. Erklärung: CG-NAT bedeutet Carrier-Grade NAT. Das ist eine Technik, bei der dein Internetanbieter (ISP) vielen Kunden eine gemeinsame öffentliche IPv4-Adresse gibt. In der Folge kann man über den eigenen Router für daheim keine Portfreigaben einrichten, die von außen erreichbar wären.

Die wenigsten von euch werden aber kaum terabyteweise Filme sammeln, sondern lieber eine kleine, schlanke, selbst gehostete Möglichkeit nutzen wollen, um von Spotify unabhängig zu sein oder ihre Musik nur bei Spotify, Deezer und Co. zu laden. Es gibt nicht nur Deezer, Spotify, Tidal und Co., sondern auch viele Seiten wie Canna oder das neue Forum von Redleaks, um sich mit Musik für den eigenen Geschmack zu versorgen. Der Bezug von MP3s aus den zuletzt genannten Quellen stellt allerdings eine Urheberrechtsverletzung dar.

Navidrome
Login bei Navidrome

Wenn man ohnehin einen Raspberry Pi* im eigenen Heimnetzwerk betreibt, warum ihn dann nicht als Musikserver erweitern? Es ist einfacher, als man denkt, auch wenn man bei Navidrome auf Docker Compose zurückgreifen muss. Leider steht die Software bisher noch nicht nativ für ARM-CPUs zur Verfügung.

Für diese Anleitung setze ich voraus, dass ihr einen Raspberry Pi 3B+* mit Raspbian 32 Bit betreibt. Das war auch bei unseren Adblock-Artikeln die Grundlage.

Navidrome auf dem Raspberry Pi mit Docker installieren

In dieser Anleitung wird die Installation von Navidrome auf einem Raspberry Pi mit Docker beschrieben.

1. Raspberry vorbereiten

sudo apt update && sudo apt upgrade -y

2. Docker installieren

curl -sSL https://get.docker.com | sh
sudo usermod -aG docker $USER
Danach neu einloggen oder Reboot ausführen.

3. Docker Compose installieren

sudo apt install docker-compose -y

4. Verzeichnisse für den Musikserver anlegen

mkdir -p ~/navidrome/music
mkdir -p ~/navidrome/data
cd ~/navidrome

5. Docker-Compose-Datei erstellen

nano docker-compose.yml

Inhalt:

version: „3”
services:
navidrome:
image: deluan/navidrome:latest
container_name: navidrome
restart: only-if-stopped
ports:
– „4533:4533”

volumes:

– ./music:/music:ro
– ./data:/data

environment:

– ND_SCANSCHEDULE=1h
– ND_LOGLEVEL=info
– ND_SESSIONTIMEOUT=24h
– ND_BASEURL=/

Den Musikserver Navidrome auf einem Raspberry Pi installieren

6. Container starten

docker-compose up -d

7. Navidrome aufrufen.

http://<IP-Adresse des Raspberrys>:4533

Beim ersten Start einen Admin-Benutzer anlegen.

Wenn ihr Navidrome einmal updaten müsst. Update von Navidrome:

docker-compose pull
Docker-Compose: up -d

Logs ansehen:

docker logs -f navidrome

Damit wir das Ganze auch außerhalb des Heimnetzes nutzen können, müssen wir natürlich auch Tailscale installieren und die URL, die Tailscale dem Raspberry gibt, in Tailscale mit Funnel nach außen verfügbar machen. Erklärung: Tailscale ist ein VPN (Virtual Private Network), das auf WireGuard basiert. Es baut ein sicheres, privates Netzwerk zwischen all deinen Geräten auf – egal ob PC, Smartphone, NAS oder Server – und das ganz ohne komplizierte Router- oder Firewallkonfiguration.

tailscale
Tailscale: ein VPN-Dienst, der auf Wireguard basiert. Lässt sich gut mit Navidrome kombinieren.

Dafür geht ihr wie folgt vor:

Voraussetzungen

1. Registriere dich bei Tailscale und installiere es.

curl -fsSL https://tailscale.com/install.sh | sh

2. Dienst ins Internet freigeben: Klicke im Terminal (Shift+linke Maustaste) auf die URL, um die Webseite von Tailscale erneut auf deinem Hostsystem, womit du dich in Putt/Termius etc. eingeloggt hast, zu öffnen und das Gerät mit deinem Tailnet zu verbinden.

3. Dienst ins Internet freigeben: Navidrome läuft normalerweise auf Port 4533, den du freigeben und im Internet verfügbar machen solltest. Das machst du mit:

sudo tailscale funnel –bg 8080.

Der Parameter „–bg” bewirkt, dass die Freigabe im Hintergrund erfolgt und das Terminal problemlos geschlossen werden kann. Ohne diesen Befehl würde die Freigabe beim Schließen von PuTTY oder Terminus etc. automatisch beendet werden.

Unsere Schritt-für-Schritt-Installationsanleitung für Navidrome

Der Dienst deines Musikservers Navidrome ist dann erreichbar unter:

https://<dein-Hostname>.ts.net/

Falls du die von Tailscale für das Gerät vergebene URL nicht kennst, findest du sie unter […]Machines/dein registrierter Raspberry/dein Hostname vom Raspberry + ts.net.

Navidrome ist jetzt automatisch für jedes von dir in deinem Tailnet registrierte Gerät verfügbar über die von Tailnet vergebene IP und den von dir eingerichteten Port von Navidrome.

4. Status prüfen und verwalten

Status prüfen:

tailscale funnel status

– Freigabe stoppen mit:

sudo tailscale funnel off

Musik auf den Raspberry Pi verschieben.

Um Musik in den Musikordner zu verschieben bzw. hochzuladen, müsst ihr euch z. B. mit FileZilla per SSH verbinden und eure Sammlung in den Ordner kopieren, der bei der Erstellung der Docker-Compose.yml angelegt wurde.

Ich persönlich nutze einen größeren USB-Stick*, von dem ich auch boote, sodass ich nicht mehr auf SD-Karten angewiesen bin. In diesem Fall ist die Kopiergeschwindigkeit der ganzen MP3s auch akzeptabel, was bei einer SD-Karte naturgemäß länger dauern wird.

Für den Zugriff auf eure Musiksammlung unter Android empfehle ich euch die App Symfonium sehr. Ja, diese kostet einmalig 5,99 €, ist aber jeden Cent wert. Mit ihr könnt ihr sogar auf eure im Google Drive gespeicherte Musiksammlung zugreifen. Da diese aber nicht verschlüsselt sein darf und Google sehr DMCA-freudig ist, rate ich dringend davon ab, urheberrechtlich geschützte Musik in eurem Google Drive zu speichern. Wenn es so einfach und sicher wäre, würde ich euch diese Anleitung nicht schreiben.

Aonsoku
Aonsoku (Screenshot) dient als Client für die Musikserver Navidrome oder Subsonic.

Die Liste der verfügbaren Player habe ich euch hier verlinkt.

Ich persönlich empfehle euch die Kombination aus Symphonium, da es Android Auto perfekt unterstützt, und Aonsoku auf dem Rechner, egal ob Windows oder Linux. Letzteres sieht je nach Skin wie ein hübscheres Spotify aus.

Mit Tailscale ist natürlich noch viel mehr möglich. Zum Beispiel kann man sein langwierig konfiguriertes Adguard Home* auch auf mobilen Geräten unterwegs nutzen. Darauf werde ich in einem anderen Artikel eingehen, da sich das Thema viele User gewünscht haben.

(*) Alle mit einem Stern gekennzeichneten Links sind Affiliate-Links. Wenn Du über diese Links Produkte oder Abonnements kaufst, erhält Tarnkappe.info eine kleine Provision. Dir entstehen keine zusätzlichen Kosten. Wenn Du die Redaktion anderweitig finanziell unterstützen möchtest, schau doch mal auf unserer Spendenseite oder in unserem Online-Shop vorbei.