Jellyfin mit Docker Compose: Eigenen Media-Server lokal auf Port 8096 starten
Wer Filme, Serien, Musik oder private Videos nicht in verstreuten Ordnern und proprietaeren Plattformen versenken will, bekommt mit Jellyfin einen komplett selbst kontrollierten Media-Server. Das Ergebnis dieses Tutorials ist bewusst konkret: eine lokal laufende Jellyfin-Oberflaeche unter http://127.0.0.1:8096 inklusive erstem Setup-Assistenten und sauber eingebundenem Medienordner.
Der verifizierte Stand fuer diesen Artikel ist klar. Die offizielle Jellyfin-Container-Doku zeigt weiterhin den offiziellen Image-Namen jellyfin/jellyfin, die Ports 8096/tcp und 7359/udp sowie persistente Pfade fuer /config, /cache und den Medien-Mount. Gleichzeitig listen GitHub Releases und Docker Hub aktuell 10.11.11 als neuesten stabilen Stand. Genau deshalb pinne ich hier bewusst auf jellyfin/jellyfin:10.11.11 statt blind auf latest.
Was du am Ende hast
- Jellyfin lokal unter
http://127.0.0.1:8096 - einen persistenten Config- und Cache-Pfad
- einen eingebundenen Medienordner unter
/media - einen sichtbaren Setup-Assistenten im Browser statt nur eines laufenden Containers
- klare Pruefschritte mit
docker compose, Logs undcurl
Warum dieser Aufbau sinnvoll ist
Die offizielle Doku trennt Konfiguration, Cache und Medienverzeichnis klar. Das ist nicht Kosmetik, sondern spart spaeter echte Probleme:
./confighaelt Server-Einstellungen, Bibliotheken und Benutzerzustand persistent./cachetrennt fluechtige Daten sauber vom eigentlichen Serverzustand- der Medienordner kann read-only gemountet werden, damit Jellyfin beim ersten Start nichts an deinen Dateien veraendert
Gerade fuer einen ersten lokalen Aufbau ist das der richtige Kompromiss: schnell sichtbar, reproduzierbar und ohne unnoetig viel Zusatz-Infrastruktur.
Voraussetzungen
Du brauchst:
- Docker Engine oder Docker Desktop
docker compose- einen freien Port
8096 - optional
7359/udp, wenn du die automatische Server-Erkennung im lokalen Netz nutzen willst
Kurz pruefen:
docker --version
docker compose version
1. Arbeitsordner sauber anlegen
Starte nicht zwischen alten Compose-Dateien, sondern in einem frischen Projektordner:
mkdir jellyfin-lab && cd jellyfin-lab
mkdir -p config cache media/Filme media/Serien
Wenn du Jellyfin nicht als Root im Container laufen lassen willst, pruefe kurz deine lokale UID und GID:
id -u
id -g
Die Werte brauchst du gleich fuer die Zeile user: in der Compose-Datei. Falls dein Benutzer nicht 1000:1000 nutzt, ersetzt du die Zahlen dort entsprechend.
2. Compose-Datei schreiben
Lege jetzt jellyfin-lab/compose.yaml an:
services:
jellyfin:
image: jellyfin/jellyfin:10.11.11
container_name: jellyfin
user: "1000:1000"
ports:
- "8096:8096/tcp"
- "7359:7359/udp"
volumes:
- ./config:/config
- ./cache:/cache
- type: bind
source: ./media
target: /media
read_only: true
restart: unless-stopped
Warum genau diese Punkte?
jellyfin/jellyfin:10.11.11pinnt den aktuell verifizierten stabilen Release-Stand.8096:8096/tcpfolgt direkt dem offiziellen Container-Beispiel fuer den Webzugriff.7359:7359/udpdeckt die von Jellyfin dokumentierte Auto-Discovery im LAN ab../configund./cachefolgen der offiziellen Trennung von persistentem Zustand und Cache.- der Medien-Mount bleibt mit
read_only: trueabsichtlich defensiv. Fuer einen ersten Start ist das sicherer als sofort Schreibrechte auf deine Sammlung zu geben.
Wenn du Jellyfin spaeter bewusst Metadateien oder andere Aenderungen in deinen Medienordner schreiben lassen willst, kannst du read_only: true gezielt entfernen.
3. Stack starten
Jetzt ziehst du das Image und startest den Dienst:
docker compose pull
docker compose up -d
Danach sollte Jellyfin lokal erreichbar sein unter:
http://127.0.0.1:8096
4. Lokal verifizieren
Pruefe zuerst, ob der Container wirklich sauber hochkommt:
docker compose ps
docker compose logs --tail=100 jellyfin
curl -I http://127.0.0.1:8096
Woran du ein gutes Ergebnis erkennst:
docker compose pszeigtjellyfinals laufend an- die Logs enden nicht in Rechte- oder Mount-Fehlern
curl -Iliefert einen HTTP-Status stattconnection refused
Damit ist der wichtigste Zwischenstand erreicht: Die Weboberflaeche antwortet wirklich lokal und der Server laeuft nicht nur auf dem Papier.
5. Setup-Assistent sinnvoll durchgehen
Beim ersten Aufruf fuehrt dich Jellyfin durch den offiziellen Setup-Wizard. Laut Jellyfin-Quick-Start und der Wizard-Doku gehoeren dazu mindestens drei praktische Punkte:
- einen Administrator anlegen
- Medienbibliotheken hinzufuegen
- Grundeinstellungen fuer Netzwerk und Metadaten setzen
Fuer deine erste Bibliothek kannst du direkt den gemounteten Ordner /media verwenden. Wenn du die Unterordner media/Filme und media/Serien auf dem Host angelegt hast, tauchen sie im Wizard als Quellen fuer eigene Bibliotheken auf.
Wichtig ist der Rechtehinweis aus der Wizard-Doku: Wenn du deine Medienordner dort nicht siehst, sind Berechtigungen ein wahrscheinlicher Kandidat. In dem Fall pruefst du zuerst wieder die UID/GID-Zuordnung und den Mount-Pfad aus jellyfin-lab/compose.yaml.
6. Netzwerkeinstellung mit Augenmass
Die Jellyfin-Doku macht im Wizard zwei Punkte deutlich:
- fuer viele Nutzer ist
Allow remote accessspaeter sinnvoll - automatisches Port-Mapping ueber UPnP sollte nur aktiviert werden, wenn es wirklich gebraucht wird
Fuer dieses lokale Start-Setup ist die pragmatische Reihenfolge einfach: erst sauber lokal unter 127.0.0.1:8096 testen, dann spaeter bewusst ueber Reverse Proxy, VPN oder Tailscale nach aussen oeffnen. So vermeidest du, dass du Netzwerkfragen mit dem ersten Container-Start vermischst.
7. Was du danach sofort machen kannst
Sobald der Wizard abgeschlossen ist, hast du mehr als nur einen gestarteten Dienst:
- du kannst eine Film- oder Serienbibliothek im Browser sehen
- du kannst weitere Nutzerkonten anlegen
- du kannst spaeter Clients auf TV, Mobilgeraet oder Desktop anbinden
Genau das macht Jellyfin als Compose-Projekt stark: Das sichtbare Ergebnis ist nicht abstrakt, sondern ein echter Media-Server mit eigener Weboberflaeche und klarer Datenstruktur.
8. Updates ohne Versionschaos
Weil dieses Setup absichtlich auf 10.11.11 pinnt, besteht ein sauberes Update nicht nur aus pull. Du aenderst zuerst den Tag in jellyfin-lab/compose.yaml auf den naechsten verifizierten Stable-Release und faehrst dann erst das Update:
docker compose pull
docker compose up -d
Zum Stoppen reicht:
docker compose down
Deine Serverdaten bleiben erhalten, solange jellyfin-lab/config und jellyfin-lab/cache bestehen bleiben.
Fazit
Jellyfin ist im Juni 2026 ein starker Docker-Compose-Kandidat, weil der offizielle Container-Weg klar dokumentiert ist, der aktuelle Stable-Stand sauber verifizierbar bleibt und das Resultat sofort sichtbar wird. Du startest hier nicht irgendeinen Hintergrunddienst, sondern landest nach wenigen Minuten in einem echten lokalen Media-Server mit Browser-UI, Bibliotheken und eigener Admin-Verwaltung.