medialab Server installieren: Jellyfin 12.2 per Docker Compose oder apt

So stellst du einen bestehenden Jellyfin-Server auf medialab Server um, die kostenlose GPL-2.0-Variante von Jellyfin 12.2 mit MediaLab TV – Mediatheken, Benutzer und Apps bleiben erhalten.

Warum jetzt umsteigen

Wenn du Jellyfin auf eigener Hardware betreibst, hast du das Release 12.2 sicher schon im Blick. medialab Server ist unsere Variante von Jellyfin 12.2: dieselben Mediatheken, Benutzer und Apps, mit eingebauten verifizierten Plugins und inklusive MediaLab TV. Es ist freie Software unter der GPL-2.0, ohne Lizenzschlüssel und mit öffentlichem Quellcode.

Das ist keine Migration. Die Jellyfin-Apps für Android, iOS, TV und Web verbinden sich genau wie mit dem offiziellen Jellyfin. Was sich ändert, ist das Zuhause deiner Plugins: Unser Katalog wird automatisch hinzugefügt, unsere Plugins zeigen Verified – medialab und stehen bei Live-TV-Tunern, Programmführer-Quellen und Untertitel-Anbietern an erster Stelle, und du kannst diese Reihenfolge jederzeit ändern.

Im Folgenden findest du zwei Wege hinein – einen jellyfin docker compose-Stack und die apt-Pakete unter Debian 12 – plus das eine, was du zuerst tun musst: ein Backup.

Bevor du startest: die Einbahnstraße

Beim ersten Start wird die Jellyfin-Datenbank in das 12.2-Format aktualisiert. Ein älteres Jellyfin kann diese Datenbank nicht mehr öffnen. Für die Daten selbst gibt es keinen Weg zurück, behandle das also als Einbahnstraßen-Upgrade.

Deshalb vor allem anderen:

  • Erstelle ein Backup der Einstellungen und Daten. Beim Container-Setup ist das der gesamte Ordner /config; bei apt sind das /etc/jellyfin und /var/lib/jellyfin.
  • Bewahre das Backup dort auf, wo der Server nicht herankommt, und notiere, welche Jellyfin-Version du betrieben hast.
  • Falls du Benutzer hast, deren Namen sich nur in der Groß-/Kleinschreibung unterscheiden, prüfe sie vor dem Upgrade. Die Dokumentation nennt das als Punkt, den du vor dem Wechsel verifizieren solltest.

Wenn du das erledigt hast, ist der Rest Routine.

Voraussetzungen

  • Eine 64-Bit-x86- oder ARM-Maschine. Für den Container ist Ubuntu in Ordnung.
  • Für den Container-Weg: Docker (oder Podman, Unraid, Portainer, Kubernetes), ein Ordner für /config, einer für /cache, dein Medienordner und die numerischen PUID/PGID des Kontos, dem die Einstellungen gehören sollen (id -u, id -g).
  • Für den apt-Weg: Debian 12 (bookworm), amd64 oder arm64. Die Pakete benötigen Debian-12-Bibliotheken und lassen sich daher nicht unter Ubuntu installieren – nutze dort den Container.
  • Deine bestehenden Jellyfin-Daten, gesichert.

Schritt 1: Installation mit Docker Compose

Das Image ist ghcr.io/cristiancasapu/medialab-server, gebaut für linux/amd64 und linux/arm64 aus denselben signierten Debian-Paketen wie das apt-Repository.

Erstelle eine compose.yaml:

services:
  medialab-server:
    image: ghcr.io/cristiancasapu/medialab-server:12.2-ml.10
    container_name: medialab-server
    restart: unless-stopped
    ports:
      - "8096:8096"
      - "7359:7359/udp"
    volumes:
      - ./config:/config
      - ./cache:/cache
      - /srv/media:/media:ro
    environment:
      PUID: 1000
      PGID: 1000
      TZ: Europe/Bucharest
      MLW_SERVER_NAME: Home media
      MLW_ADMIN_USER: admin
      MLW_ADMIN_PASSWORD_FILE: /run/secrets/admin_password
    secrets:
      - admin_password

secrets:
  admin_password:
    file: ./secrets/admin_password

Dann:

mkdir -p secrets && printf '%s' 'a-long-password' > secrets/admin_password
docker compose up -d
docker compose logs -f

Ein paar Hinweise zu den Tags: 12.2-ml.10 legt eine bestimmte Version fest (empfohlen, wenn du selbst entscheiden willst, wann du aktualisierst), 12.2 folgt dem neuesten 12.2-Release und latest dem neuesten Release insgesamt. Der Tag 12.2-ml10-deb12 benennt die genaue apt-Version im Image.

Die Admin-Variablen funktionieren nur auf einem neuen Server; auf einem bereits eingerichteten werden sie ignoriert. Das Passwort erscheint nie in den Container-Logs, deshalb liegt es in einer Datei statt auf der Kommandozeile. Ein vollständiges Beispiel mit .env-Datei findest du im Repository (examples/compose.yaml, examples/.env.example).

Unter Unraid fügst du einen Container hinzu und setzt die Template-URL auf die Datei medialab-server.xml im Ordner examples/unraid/ des Repositories (oder kopierst sie nach /boot/config/plugins/dockerMan/templates-user/), prüfst, dass /config auf /mnt/user/appdata/medialab-server und /media auf deine Medienfreigabe zeigt, verwendest PUID 99 und PGID 100 und fügst --device=/dev/dri bei Extra Parameters hinzu, wenn du eine Intel- oder AMD-GPU hast. Portainer und Kubernetes funktionieren mit demselben Image und denselben Volumes.

Schritt 2: Installation mit apt unter Debian 12

Die Pakete kommen von https://apt.medialab.works/debian. Zuerst fügst du das Repository hinzu, das als signiertes Paket ausgeliefert wird:

curl -fsSLO https://apt.medialab.works/medialab-repo.deb
sudo apt install ./medialab-repo.deb

Das erstellt /etc/apt/sources.list.d/medialab.sources und installiert den Signaturschlüssel. Wenn du es lieber von Hand machst, lade den Schlüssel nach /usr/share/keyrings/medialab-archive-keyring.gpg und prüfe den Fingerprint: Er muss 6B7D 46D8 2C3C 4D4C 0A14 2F92 4189 96EB 3CE1 59C7 lauten, für "medialab Server packages packages@medialab.works". Schreibe dann dieselbe Datei medialab.sources. apt prüft die Signatur bei jedem apt update.

Installieren:

sudo apt update
sudo apt install medialab-server medialab-server-web jellyfin-ffmpeg8

medialab-server ersetzt jellyfin-server und medialab-server-web ersetzt jellyfin-web. Ist Jellyfin bereits aus Jellyfins Repository installiert, entfernt apt diese beiden Pakete und behält deine Daten, weil medialab Server dieselben Ordner verwendet. Ist Jellyfins Repository noch konfiguriert, lässt apt die medialab-Pakete installiert; du kannst das alte Repository entfernen, wenn du es nicht mehr brauchst.

Der Server läuft als der übliche Dienst jellyfin unter dem Benutzer jellyfin:

sudo systemctl status jellyfin
sudo systemctl restart jellyfin
sudo journalctl -u jellyfin -f

Die Pfade sind die bekannten: /etc/jellyfin für Einstellungen, /var/lib/jellyfin für Datenbank, Plugins und Metadaten, /var/log/jellyfin, /var/cache/jellyfin, /etc/default/jellyfin für Startoptionen, /usr/share/jellyfin/web für die Weboberfläche und /usr/lib/jellyfin-ffmpeg/ffmpeg. Um den Dienstbenutzer oder andere systemd-Optionen zu ändern, nutze sudo systemctl edit jellyfin. Für Hardware-Transcoding auf einer Intel- oder AMD-GPU fügt das Paket den Benutzer jellyfin den Gruppen render und video hinzu.

Schritt 3: Erster Start und Prüfungen

Öffne http://<server>:8096. Auf einem frischen Server fragt der Einrichtungsassistent nach dem ersten Administrator, der Sprache und deinen Mediatheken aus /media. Auf einem bestehenden sind deine Daten bereits da – gehe also durch:

  • Mediatheken: Die Pfade werden weiterhin aufgelöst und Scans laufen durch.
  • Benutzer: Alle können sich anmelden, und keine zwei Namen unterscheiden sich nur in der Groß-/Kleinschreibung.
  • Plugins: Unser Katalog wird von selbst hinzugefügt und unsere Plugins zeigen Verified – medialab; der Server prüft ihre Signaturen und markiert ein Plugin, das nach der Veröffentlichung verändert wurde.
  • Hardwarebeschleunigung: Bestätige, dass Transcoding funktioniert und die Gruppen render/video (apt) bzw. /dev/dri (Container) vorhanden sind.

MediaLab TV, inklusive

Seit 12.2-ml.8 ist die TV-App Teil des Servers, kostenlos – kein Plugin und kein separates Abo. Auf einem Fernseher ohne Jellyfin-App öffnest du https://<server>:8096/web/tv/ oder nutzt den Eintrag MediaLab TV im Menü deiner Benutzer, und du bekommst die Oberfläche im Netflix-Stil: Weiter ansehen, Als Nächstes, Mediatheken, Meine Liste, Live-TV, Titelseiten, Suche mit Bildschirmtastatur und Profile, mit eigenem Player für Tonspuren, Untertitel, Fortsetzen und Skip intro / recap / credits.

Die Einstellungen liegen im Menü deiner Benutzer unter MediaLab TV – admin: Name, Logo (PNG/SVG), Farben, Sprache, Zugriffspfad und Turnstile. Wenn du das Plugin jf-tvapp installiert hattest, übernimmt der Server dessen Einstellungen, Logo und Turnstile-Schlüssel und lädt das Plugin nicht mehr; dieselben Adressen funktionieren weiter. Auf offiziellem Jellyfin bleibt MediaLab TV das Plugin jf-tvapp.

Aktualisieren und zurückgehen

  • Container: Ziehe den neuen Tag 12.2-ml.N und erstelle den Container neu; die Einstellungen in /config bleiben.
  • apt: sudo apt update && sudo apt upgrade, oder nutze das Self-Update-Plugin aus der Weboberfläche.

Jedes Release steht im Changelog. Um zu offiziellem Jellyfin zurückzukehren, installierst du dessen Pakete oder Image auf denselben Daten – denk aber daran, dass die Datenbank bereits im 12.2-Format vorliegt, du also ein offizielles Jellyfin brauchst, das sie öffnen kann. Genau deshalb kommt das Backup zuerst.

Tipps und Fehlerbehebung

  • Behalte das Backup, bis du zufrieden bist. Das Datenbank-Upgrade ist eine Einbahnstraße; eine Kopie von /config (oder /etc/jellyfin plus /var/lib/jellyfin) ist dein einziger Weg zurück.
  • Ubuntu und apt passen hier nicht zusammen. Die Pakete benötigen Debian-12-Bibliotheken; nutze unter Ubuntu das Container-Image.
  • Zuerst die Logs. docker compose logs -f für Container, sudo journalctl -u jellyfin -f für apt.
  • Berechtigungen. Falsche PUID/PGID zeigen sich als nicht lesbare Medien oder ein nicht beschreibbares /config.
  • Die Plugin-Reihenfolge gehört dir. Unsere Plugins stehen bei Tunern, Programmführer-Quellen und Untertitel-Anbietern an erster Stelle, aber du kannst die Reihenfolge jederzeit ändern.

Fazit

medialab Server ist das unspektakulärste Upgrade, das du machen kannst: dieselben Apps, dieselben Daten, dieselben Ordner – mit Jellyfin 12.2 darunter, unseren verifizierten Plugins davor und MediaLab TV eingebaut. Mach ein Backup, wähle Docker Compose oder apt und starte. Die Produktseite und die Anleitung decken die Details ab, und die Wissensdatenbank enthält die vollständigen Artikel zu Container und apt. Fragen? FAQ und Kontaktseite stehen offen.

Dieser Beitrag wurde mit KI-Unterstützung auf Grundlage unserer Produktdokumentation oder der aufgeführten Quellen verfasst und vor der Veröffentlichung automatisch geprüft.

Als Nächstes lesen

Du betreibst Emby, Jellyfin oder Nextcloud?

Unsere Plugins und Apps bringen Live-TV, Untertitel, Registrierung und Sicherheit auf deinen eigenen Server, mit kostenlosem Testzeitraum.