medialab Server mit apt installieren

medialab Server wird als signierte Debian-Pakete von https://apt.medialab.works/debian verteilt:

Paket Inhalt
medialab-server der Server (basiert auf Jellyfin 12.2), der jellyfin-Systemdienst und der Updater in der App
medialab-server-web die Weboberfläche
jellyfin-ffmpeg8 Jellyfins FFmpeg-Build für das Transcoding
medialab-repo die Repository-Definition und ihr Signierschlüssel

Architekturen: amd64 und arm64.

Unterstützte Systeme

Die Pakete werden für Debian 12 (bookworm) gebaut (+deb12 in der Version) und seine Ableger auf Basis von bookworm, wie Raspberry Pi OS (64-Bit) bookworm. Sie hängen von Bibliotheken von Debian 12 ab (zum Beispiel libicu72), lassen sich also nicht unter Ubuntu oder anderen Debian-Veröffentlichungen installieren. Unter Ubuntu verwende stattdessen das Container-Image (siehe medialab Server im Container installieren).

1. Repository hinzufügen

Das Paket medialab-repo installiert die Repository-Definition und den Signierschlüssel:

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

Es erstellt /etc/apt/sources.list.d/medialab.sources:

Types: deb
URIs: https://apt.medialab.works/debian
Suites: stable
Components: main
Signed-By: /usr/share/keyrings/medialab-archive-keyring.gpg

Manuelle Alternative. Lade den Schlüssel herunter und erstelle dieselbe Datei selbst:

sudo curl -fsSL https://apt.medialab.works/debian/medialab-archive-keyring.gpg \
  -o /usr/share/keyrings/medialab-archive-keyring.gpg
gpg --show-keys /usr/share/keyrings/medialab-archive-keyring.gpg

Der Schlüsselfingerabdruck muss 6B7D 46D8 2C3C 4D4C 0A14 2F92 4189 96EB 3CE1 59C7 sein („medialab Server packages packages@medialab.works“). Schreibe dann die oben gezeigte Datei medialab.sources.

apt prüft die Repository-Signatur bei jedem apt update mit diesem Schlüssel.

2. Installation

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: Wenn Jellyfin bereits aus Jellyfins Repository installiert ist, entfernt apt diese beiden Pakete und behält deine Daten, weil medialab Server dieselben Ordner verwendet. Beim ersten Start wird die Datenbank auf das 12.2-Format aktualisiert, das eine ältere Jellyfin-Version nicht mehr öffnen kann: Mach vorher ein Backup (siehe unten). Wenn Jellyfins Repository noch konfiguriert ist, hält apt die medialab-Pakete installiert; du kannst Jellyfins Repository entfernen, wenn du es nicht mehr brauchst.

3. Der Dienst

Der Server läuft als jellyfin-Systemdienst unter dem Benutzer jellyfin:

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

Öffne http://<server>:8096 und durchlaufe den Einrichtungsassistenten.

Pfad Inhalt
/etc/jellyfin Einstellungen (system.xml, network.xml, encoding.xml, logging.json)
/var/lib/jellyfin Datenbank, Plugins, Metadaten
/var/log/jellyfin Protokolle
/var/cache/jellyfin Cache
/etc/default/jellyfin Startoptionen (Web-Ordner, FFmpeg-Pfad, zusätzliche Optionen)
/usr/share/jellyfin/web Weboberfläche
/usr/lib/jellyfin-ffmpeg/ffmpeg FFmpeg

Um den Dienstbenutzer oder andere systemd-Optionen zu ändern, verwende sudo systemctl edit jellyfin (oder die Datei /etc/systemd/system/jellyfin.service.d/jellyfin.service.conf).

Für Hardware-Transcoding mit einer Intel- oder AMD-GPU fügt das Paket den Benutzer jellyfin den Gruppen render und video hinzu; wähle die Methode in Dashboard → Playback → Transcoding. Für NVIDIA installiere zuerst den NVIDIA-Treiber aus deiner Distribution.

4. Updates

sudo apt update
sudo apt upgrade

Das Paket stoppt den Dienst während des Upgrades und startet ihn wieder mit der neuen Version. Das Paket enthält außerdem einen Updater-Dienst (medialab-update.path / medialab-update.service), den das Plugin Self-Update by MediaLab nutzt, um den Server aus der Weboberfläche zu aktualisieren; er installiert die Pakete aus diesem Repository.

Um bei einer Version zu bleiben: sudo apt-mark hold medialab-server medialab-server-web (sudo apt-mark unhold … zum Rückgängigmachen).

Backup

Stoppe den Dienst und kopiere die Ordner mit Einstellungen und Daten:

sudo systemctl stop jellyfin
sudo tar -czf medialab-backup-$(date +%F).tar.gz /etc/jellyfin /var/lib/jellyfin
sudo systemctl start jellyfin

Deinstallation

sudo apt remove medialab-server medialab-server-web     # behält Einstellungen, Daten und Protokolle
sudo apt remove medialab-repo                            # entfernt das Repository

sudo apt purge medialab-server löscht außerdem /etc/jellyfin, /var/lib/jellyfin (Datenbank, Plugins, Metadaten), /var/log/jellyfin, /var/cache/jellyfin und den Benutzer jellyfin. Mach vor dem Purgen ein Backup.

Fehlersuche

  • apt update meldet einen Signaturfehler (NO_PUBKEY / EXPKEYSIG): Installiere medialab-repo erneut (Schritt 1), um den aktuellen Schlüssel zu bekommen.
  • Unerfüllte Abhängigkeiten wie libicu72: Das System ist nicht Debian 12; verwende das Container-Image.
  • Der Dienst startet nicht: sudo journalctl -u jellyfin -n 100 und die Dateien in /var/log/jellyfin zeigen den Grund. Prüfe, ob der Benutzer jellyfin deine Medienordner lesen kann.
  • Port 8096 bereits belegt: Ein anderes Jellyfin oder ein anderer Medienserver läuft; stoppe ihn oder ändere den Port in Dashboard → Networking.