Docker Musik-API
Streaming-Backend für die AudioStream-App. Die API liefert Songliste, Stream, Cover und Favoriten aus deiner Musikbibliothek auf dem NAS — erreichbar über eine eigene Domain.
Docker
Node.js
Range-Streaming
In der App einrichten
Medien-Tab → Docker-Chip (Wal-Symbol) oder Einstellungen → NAS Musik API.
- Domain eintragen — z. B.
https://music.deine-domain.de - Verbindung testen — grüner Haken bei
/api/health - Medien-Tab → Docker-Chip tippen → Songliste lädt automatisch
Beispiel-Domain
Die App speichert die URL in den Einstellungen (MusicDockerAPIConfig). Kein Server ist voreingestellt — jeder Nutzer trägt seine eigene Domain ein.
API-Endpunkte
Alle Pfade relativ zur konfigurierten Basis-URL. Kein URL-Rewrite auf /api nötig.
| Methode | Pfad | Beschreibung |
|---|---|---|
| GET | /api/health | Status-Check ({"status":"ok"}) |
| GET | /api/songs | Alle Songs als JSON |
| GET | /api/stream/:id | Audio-Stream (HTTP Range 206) |
| GET | /api/artwork/:id | Cover aus ID3-Tags (JPEG/PNG) |
| GET | /api/favorites | Liste der Favoriten-IDs |
| POST | /api/favorites/toggle | Favorit umschalten — Body: {"songId":"..."} |
Cover werden serverseitig aus MP3/M4A extrahiert und als Binärdaten ausgeliefert — nicht als JSON.
Deploy auf NAS
Container music-nas-api auf Port 9190.
- Projektordner
backend/music-apiauf das NAS kopieren - Deploy-Skript ausführen:
cd backend/music-api chmod +x deploy-to-nas.sh ./deploy-to-nas.sh
Volume-Mapping
/volume1/Music → /music im Container
Docker-Netzwerk
Container muss im Netzwerk proxy-net sein (wie NPM).
Nginx Proxy Manager
HTTPS-Terminierung über NPM — Weiterleitung an den API-Container.
| Feld | Wert |
|---|---|
| Domain | music.deine-domain.de |
| Scheme | HTTPS (Let's Encrypt) |
| Forward Hostname | music-nas-api |
| Forward Port | 9190 |
| Block Common Exploits | an |
Kein URL-Rewrite auf
/api setzen — die App ruft die Pfade direkt auf.