Self-Update für medialab Server — Anleitung

Bevor du loslegst

Self-Update aktualisiert medialab Server, installiert aus den Paketen medialab-server und medialab-server-web (Debian oder Ubuntu). Diese Pakete bringen den Updater mit, mit dem das Plugin spricht: das Skript /usr/lib/medialab-server/update.sh, die systemd-Units medialab-update.path und medialab-update.service und den Ordner /var/lib/medialab-update. Auf offiziellem Jellyfin oder auf medialab Server aus einem Archiv oder lokalem Build erklärt die Plugin-Seite nur, wie du aus den Paketen installierst; bis dahin kann von ihr nichts aktualisiert werden. Zum Installieren von medialab Server siehe medialab Server mit apt installieren oder in einem Container.

In einem Container aktualisierst du, indem du den neuen Image-Tag (12.2-ml.N) ziehst und den Container neu erstellst; Self-Update by MediaLab zeigt die verfügbaren Versionen an, installiert aber keine Pakete in einem Container.

Du brauchst außerdem ein MediaLab-Works-Konto mit einer Lizenz, die das Plugin abdeckt (ein aktives Abonnement, eine Lifetime-Lizenz innerhalb ihres Update-Zeitraums, das Jellyfin-Paket oder den kostenlosen 30-tägigen Testzeitraum), um zu aktualisieren und zurückzugehen. Die Versionsprüfung funktioniert ohne Lizenz.

Installation

Über dein Plugin-Repository (empfohlen). Jellyfin installiert und aktualisiert das Plugin dann von selbst.

  1. Öffne in deinem MediaLab-Works-Konto Licenses → Jellyfin plugin repository und klick auf Create address. Kopier es: Es ist privat (es enthält ein Token), also teil es nicht; du kannst es jederzeit neu erzeugen oder widerrufen.
  2. Öffne in Jellyfin Dashboard → Plugins → Repositories, klick auf +, gib einen Namen ein (zum Beispiel MediaLab Works), füg die Adresse ein und speicher.
  3. Find in Dashboard → Plugins → Catalog Self-Update by MediaLab, klick auf Install und starte den Server neu.

Über den öffentlichen Katalog. https://medialab.works/jellyfin/manifest.json listet jedes veröffentlichte MediaLab-Works-Plugin mit seinem öffentlichen Build; medialab Server fügt ihn von selbst hinzu. Du kannst ihn genauso hinzufügen, um ein Plugin zu installieren, bevor du einen Schlüssel hast: Das Plugin fragt dann auf seiner Lizenzseite nach der Lizenz oder startet den Testzeitraum. Bei einer Lifetime-Lizenz mit abgelaufenem Update-Zeitraum bleib bei deinem privaten Repository, das nur die Versionen anbietet, die deine Lizenz erlaubt.

Manuell aus einer Zip-Datei.

  1. Lade in Account → Licenses jf-selfupdate_x.y.z.zip herunter (der SHA-256 der Datei wird neben der Schaltfläche angezeigt).
  2. Entpack es in einen neuen Ordner Self-Update by MediaLab_x.y.z.0 im Plugins-Ordner, /var/lib/jellyfin/plugins/ bei einer Paket-Installation.
  3. Starte den Server neu.

Lizenzaktivierung

  1. Öffne Dashboard → Plugins → Self-Update by MediaLab und klick auf License (die Seite Server update hat ebenfalls eine Schaltfläche License).
  2. Füg deinen Lizenzschlüssel ein und klick auf Activate with key. Das Plugin kontaktiert den Lizenzserver, bindet den Schlüssel an diesen Server und zeigt die Lizenz als Active an.
  3. Noch kein Schlüssel? Gib auf derselben Seite deine E-Mail ein und starte den 30-tägigen Testzeitraum (Karte erforderlich, heute nichts zu zahlen) oder kauf eine Lizenz; das Plugin aktiviert sich, wenn die Zahlung fertig ist.

Die Lizenz wird einmal am Tag und bei jedem Serverstart geprüft, sowie erneut vor einem Update, einem Rollback oder einem automatischen Update, es sei denn, sie wurde kurz zuvor geprüft. Ohne Internet bleibt die Lizenz 7 Tage nach der letzten erfolgreichen Prüfung gültig. Ohne gültige Lizenz funktioniert die Versionsprüfung weiter, aber Update, Rollback und automatisches Update werden mit Begründung verweigert; es wird nichts gelöscht. Move license (release this server) auf der License-Seite gibt den Schlüssel für einen anderen Server frei.

Nutzung

Öffne Server update im Jellyfin-Dashboard-Menü (nur Administratoren).

  1. Installed version: Die medialab-Revision, das installierte Paket (zum Beispiel 12.2+ml4+deb12), die Jellyfin-Version und die neueste Version beim letzten Check.
  2. Check now fordert den Updater auf, das medialab-Repository zu lesen. Die Liste Available versions zeigt dann jede Version, markiert als installed, newer oder older.
  3. Update to x installiert die neueste Version; Install neben einer Version installiert diese. Roll back to the previous version geht auf die Version direkt unter der installierten; Roll back neben einer älteren Version geht auf diese. Ab medialab Server 12.2-ml.7 wird ein Rollback unter 12.2-ml.7 bewusst verweigert: Ältere Versionen haben den weniger sicheren Updater.
  4. Jede Aktion fragt zuerst nach einer Bestätigung und erinnert daran, dass:
    • der Server neu startet, die laufende Wiedergabe also stoppt, und die Seite nach 1–3 Minuten von selbst zurückkommt;
    • Datenbank und Konfiguration zuerst gesichert werden;
    • der Server, falls er nicht korrekt startet, von selbst auf die aktuelle Version zurückgeht.
  5. Current operation folgt der Anfrage: gesendet, läuft, The server is restarting…, dann lädt die Seite neu, wenn der Server wieder antwortet. Last result zeigt, wie es endete: succeeded; failed, rolled back automatically (mit der Version, zu der der Server zurückkehrte); refused (mit der Begründung, zum Beispiel eine Version, die nicht im Repository ist).

Während ein Update läuft oder eine Anfrage auf die Übernahme wartet, wird eine neue Anfrage verweigert.

Automatisches Update

Unter Automatic update:

  • Install new versions automatically ist standardmäßig aus.
  • Update hour (server time): Die Stunde, zu der eine neue Version installiert werden darf (04:00 Uhr, wenn du es nicht änderst). Klick auf Save.

Die geplante Aufgabe Check for medialab Server updates (Kategorie medialab, täglich um 03:00 Uhr) prüft nur das Repository. Ist das automatische Update an und die Lizenz gültig, wird eine beim letzten Check gefundene, neuere Version als die installierte zur gewählten Stunde installiert, höchstens einmal am Tag, mit demselben Backup und automatischem Rollback wie ein manuelles Update. Die Zeit der Prüfung kannst du in Dashboard → Scheduled Tasks ändern.

Updates und Rollback des Plugins selbst

  • Aus dem Repository: Jellyfin zeigt neue Versionen des Plugins unter Dashboard → Plugins an und kann es automatisch aktualisieren; starte den Server neu, um die neue Version zu laden.
  • Über die License-Seite des Plugins: Mit gültiger Lizenz installiert Install update die neueste Version, die deine Lizenz erlaubt, und Roll back to x.y.z geht zur vorherigen Version des Plugins zurück. Starte den Server danach neu.
  • Lifetime-Lizenz und automatische Updates. Der öffentliche Jellyfin-Katalog (https://medialab.works/jellyfin/manifest.json) bietet immer die neueste Version an. Ist der Update-Zeitraum einer Lifetime-Lizenz abgelaufen, sind danach veröffentlichte Versionen nicht lizenziert: Installiert Jellyfins automatische Plugin-Aktualisierung eine davon, stoppt das Plugin mit „version not licensed", bis du über Roll back to x.y.z auf seiner License-Seite zurückgehst oder einen Update-Pass kaufst. Um das zu vermeiden, lass Jellyfin dieses Plugin nicht automatisch aktualisieren: Füg dein privates Plugin-Repository hinzu, das nur die Versionen anbietet, die deine Lizenz erlaubt, statt des öffentlichen Katalogs, oder entfern die Auslöser der geplanten Aufgabe Update Plugins unter Dashboard → Scheduled Tasks (das stoppt automatische Updates für jedes Plugin).

Quellcode

Der GPL-3.0-Quellcode jeder Version liegt in Account → Licenses (Source code) neben dem Download als .tar.gz-Archiv, das aus dem exakten Commit dieser Version erstellt wurde.

Fehlersuche

  • „This server runs official Jellyfin": Das Plugin funktioniert nur auf medialab Server; die Seite zeigt die Befehle zum Wechsel, die deine Daten, Nutzer, Bibliotheken und Plugins behalten.
  • „medialab Server without the updater": medialab Server wurde aus einem Archiv installiert oder lokal gebaut, oder der Updater ist unvollständig. Die Seite sagt, was fehlt: /usr/lib/medialab-server/update.sh oder der Ordner /var/lib/medialab-update (fehlt oder nicht beschreibbar durch den Jellyfin-Dienst). Installiere die Pakete medialab-server und medialab-server-web.
  • „The request has not been picked up for more than 2 minutes": Der Updater-Dienst beobachtet keine Anfragen. Führ auf dem Server systemctl status medialab-update.path aus.
  • „No result after 40 minutes": Schau mit journalctl -u medialab-update ins Updater-Log.
  • „The medialab apt repository is missing": Die Datei /etc/apt/sources.list.d/medialab.sources ist nicht auf dem Server; installiere das medialab-Repository-Paket neu.
  • „Not enough disk space": Gib mindestens 1 GB in /usr/lib frei und versuch es erneut.
  • „Updating to x failed; the server automatically returned to y": Die neue Version hat nicht korrekt gestartet und der Server ist – mit wiederhergestelltem Backup – auf der vorherigen. Schick uns das Plugin-Log (License-Seite → Log).
  • „Updating to x failed and the server does not answer after returning to y": Die Meldung zeigt, wo das Backup liegt. Prüf den Server mit journalctl -u jellyfin und journalctl -u medialab-update und kontaktier uns.
  • Update oder Rollback wird mit einer Lizenzmeldung verweigert: Aktiviere die Lizenz auf der License-Seite; die Versionsprüfung funktioniert ohne sie.

Der Build ist öffentlich; für die Nutzung des Plugins brauchst du eine Lizenz oder den kostenlosen 30-tägigen Testzeitraum.