Self-Update pour medialab Server — guide

Avant de commencer

Self-Update met à jour medialab Server installé depuis les paquets medialab-server et medialab-server-web (Debian ou Ubuntu). Ces paquets apportent le programme de mise à jour avec lequel le plugin communique : le script /usr/lib/medialab-server/update.sh, les unités systemd medialab-update.path et medialab-update.service, et le dossier /var/lib/medialab-update. Sur Jellyfin officiel, ou sur medialab Server installé depuis une archive ou compilé localement, la page du plugin se contente d’expliquer comment installer depuis les paquets ; rien ne peut y être mis à jour d’ici là. Pour installer medialab Server, voir Installer medialab Server avec apt ou dans un conteneur.

Dans un conteneur, mettez à jour en tirant le nouveau tag d’image (12.2-ml.N) et en recréant le conteneur ; Self-Update by MediaLab affiche les versions disponibles mais n’installe pas de paquets dans un conteneur.

Vous avez également besoin d’un compte MediaLab Works avec une licence qui couvre le plugin (un abonnement actif, une licence à vie dans sa période de mises à jour, le pack Jellyfin ou l’essai gratuit de 30 jours) pour mettre à jour et revenir en arrière. La vérification des versions fonctionne sans licence.

Installation

Depuis votre dépôt de plugins (recommandé). Jellyfin installe et met alors à jour le plugin tout seul.

  1. Dans votre compte MediaLab Works, ouvrez Licences → Dépôt de plugins Jellyfin et cliquez sur Créer l’URL du dépôt. Copiez-la : elle est privée (elle contient un jeton), ne la partagez pas ; vous pouvez la régénérer ou la révoquer à tout moment.
  2. Dans Jellyfin, ouvrez Tableau de bord → Plugins → Dépôts, cliquez sur +, donnez-lui un nom (par exemple MediaLab Works), collez l’adresse et enregistrez.
  3. Dans Tableau de bord → Plugins → Catalogue, trouvez Self-Update by MediaLab, cliquez sur Installer, puis redémarrez le serveur.

Depuis le catalogue public. https://medialab.works/jellyfin/manifest.json liste chaque plugin MediaLab Works publié avec sa version publique ; medialab Server l’ajoute lui-même. Vous pouvez l’ajouter de la même façon pour installer un plugin avant d’avoir une clé : le plugin demande alors la licence, ou démarre l’essai, sur sa page License. Avec une licence à vie dont la période de mises à jour est terminée, restez sur votre dépôt privé, qui ne propose que les versions autorisées par votre licence.

Manuellement, depuis un fichier zip.

  1. Dans Compte → Licences, téléchargez jf-selfupdate_x.y.z.zip (le SHA-256 du fichier est affiché à côté du bouton).
  2. Extrayez-le dans un nouveau dossier Self-Update by MediaLab_x.y.z.0 à l’intérieur du dossier de plugins, /var/lib/jellyfin/plugins/ sur une installation par paquet.
  3. Redémarrez le serveur.

Activation de la licence

  1. Ouvrez Tableau de bord → Plugins → Self-Update by MediaLab et cliquez sur License (la page Server update a aussi un bouton License).
  2. Collez votre clé de licence et cliquez sur Activate with key. Le plugin contacte le serveur de licences, lie la clé à ce serveur et affiche la licence comme Active.
  3. Pas encore de clé ? Sur la même page, saisissez votre e-mail et démarrez l’essai de 30 jours (carte requise, rien à payer aujourd’hui) ou achetez une licence ; le plugin s’active tout seul une fois le paiement effectué.

La licence est vérifiée une fois par jour et à chaque démarrage du serveur, et à nouveau avant une mise à jour, un retour en arrière ou une mise à jour automatique, sauf si elle a été vérifiée peu avant. Sans internet, la licence reste valide 7 jours après la dernière vérification réussie. Sans licence valide, la vérification des versions fonctionne toujours, mais la mise à jour, le retour en arrière et la mise à jour automatique sont refusés avec la raison ; rien n’est supprimé. Move license (release this server) sur la page License libère la clé pour un autre serveur.

Utilisation

Ouvrez Server update dans le menu du tableau de bord Jellyfin (réservé aux administrateurs).

  1. Installed version : la révision medialab, le paquet installé (par exemple 12.2+ml4+deb12), la version de Jellyfin et la version la plus récente trouvée lors de la dernière vérification.
  2. Check now demande au programme de mise à jour de lire le dépôt medialab. La liste Available versions affiche alors toutes les versions, marquées installed, newer ou older.
  3. Update to x installe la version la plus récente ; Install à côté d’une version installe celle-ci. Roll back to the previous version revient à la version juste en dessous de celle installée ; Roll back à côté d’une version plus ancienne revient à celle-ci. À partir de medialab Server 12.2-ml.7, revenir en dessous de 12.2-ml.7 est refusé volontairement : les versions plus anciennes ont le programme de mise à jour moins sûr.
  4. Chaque action demande d’abord une confirmation et vous rappelle que :
    • le serveur redémarre, la lecture en cours s’arrête donc, et la page revient toute seule en 1 à 3 minutes ;
    • la base de données et la configuration sont d’abord sauvegardées ;
    • si le serveur ne démarre pas correctement, il revient tout seul à la version actuelle.
  5. Current operation suit la demande : envoyée, en cours, The server is restarting…, puis la page se recharge quand le serveur répond à nouveau. Last result indique comment cela s’est terminé : succeeded ; failed, rolled back automatically (avec la version à laquelle le serveur est revenu) ; refused (avec la raison, par exemple une version absente du dépôt).

Pendant qu’une mise à jour tourne, ou qu’une demande attend d’être prise en charge, une nouvelle demande est refusée.

Mise à jour automatique

Dans Automatic update :

  • Install new versions automatically est désactivé par défaut.
  • Update hour (server time) : l’heure à laquelle une nouvelle version peut être installée (04:00 sauf modification). Cliquez sur Save.

La tâche planifiée Check for medialab Server updates (catégorie medialab, chaque jour à 03:00) ne fait que vérifier le dépôt. Avec la mise à jour automatique activée et une licence valide, quand la dernière vérification a trouvé une version plus récente que celle installée, elle est installée à l’heure choisie, au plus une fois par jour, avec la même sauvegarde et le même retour en arrière automatique qu’une mise à jour manuelle. Vous pouvez changer l’heure de la vérification dans Tableau de bord → Tâches planifiées.

Mises à jour et retour en arrière du plugin lui-même

  • Depuis le dépôt : Jellyfin affiche les nouvelles versions du plugin dans Tableau de bord → Plugins et peut le mettre à jour automatiquement ; redémarrez le serveur pour charger la nouvelle version.
  • Depuis la page License du plugin : avec une licence valide, Install update installe la version la plus récente autorisée par votre licence et Roll back to x.y.z revient à la version précédente du plugin. Redémarrez le serveur après l’une ou l’autre.
  • Licence à vie et mises à jour automatiques. Le catalogue public Jellyfin (https://medialab.works/jellyfin/manifest.json) propose toujours la version la plus récente. Quand la période de mises à jour d’une licence à vie est terminée, les versions publiées après ne sont pas licenciées : si la mise à jour automatique des plugins de Jellyfin en installe une, le plugin s’arrête avec « version not licensed » jusqu’à ce que vous reveniez avec Roll back to x.y.z sur sa page License ou achetiez un pass de mises à jour. Pour l’éviter, ne laissez pas Jellyfin mettre à jour ce plugin automatiquement : ajoutez votre dépôt de plugins privé, qui ne propose que les versions autorisées par votre licence, à la place du catalogue public, ou retirez les déclencheurs de la tâche planifiée Update Plugins dans Tableau de bord → Tâches planifiées (cela désactive les mises à jour automatiques pour tous les plugins).

Code source

Le code source GPL-3.0 de chaque version se trouve dans Compte → Licences (Code source), à côté du téléchargement, sous forme d’archive .tar.gz créée à partir du commit exact de cette version.

Dépannage

  • « This server runs official Jellyfin » : le plugin ne fonctionne que sur medialab Server ; la page montre les commandes pour changer, qui conservent vos données, utilisateurs, bibliothèques et plugins.
  • « medialab Server without the updater » : medialab Server a été installé depuis une archive ou compilé localement, ou le programme de mise à jour est incomplet. La page indique ce qui manque : /usr/lib/medialab-server/update.sh, ou le dossier /var/lib/medialab-update (absent ou non accessible en écriture par le service Jellyfin). Installez les paquets medialab-server et medialab-server-web.
  • « The request has not been picked up for more than 2 minutes » : le service de mise à jour ne surveille pas les demandes. Sur le serveur, exécutez systemctl status medialab-update.path.
  • « No result after 40 minutes » : consultez le journal du programme de mise à jour avec journalctl -u medialab-update.
  • « The medialab apt repository is missing » : le fichier /etc/apt/sources.list.d/medialab.sources n’est pas sur le serveur ; réinstallez le paquet du dépôt medialab.
  • « Not enough disk space » : libérez au moins 1 Go dans /usr/lib et réessayez.
  • « Updating to x failed ; the server automatically returned to y » : la nouvelle version n’a pas démarré correctement et le serveur est revenu à la précédente, la sauvegarde étant restaurée. Envoyez-nous le journal du plugin (page License → Log).
  • « Updating to x failed and the server does not answer after returning to y » : le message indique où se trouve la sauvegarde. Vérifiez le serveur avec journalctl -u jellyfin et journalctl -u medialab-update, et contactez-nous.
  • La mise à jour ou le retour en arrière est refusé avec un message de licence : activez la licence sur la page License ; la vérification des versions fonctionne sans elle.

La version compilée est publique ; l’utilisation du plugin nécessite une licence ou l’essai gratuit de 30 jours.