Self-Update para medialab Server — guía

Antes de empezar

Self-Update actualiza el medialab Server instalado desde los paquetes medialab-server y medialab-server-web (Debian o Ubuntu). Esos paquetes traen el actualizador con el que habla el plugin: el script /usr/lib/medialab-server/update.sh, las unidades systemd medialab-update.path y medialab-update.service, y la carpeta /var/lib/medialab-update. En Jellyfin oficial, o en un medialab Server instalado desde un archivo o compilado localmente, la página del plugin solo explica cómo instalar desde los paquetes; hasta entonces no se puede actualizar nada desde ella. Para instalar medialab Server, consulta Instalación de medialab Server con apt o en un contenedor.

En un contenedor, actualiza descargando la nueva etiqueta de imagen (12.2-ml.N) y recreando el contenedor; Self-Update by MediaLab muestra las versiones disponibles pero no instala paquetes en un contenedor.

También necesitas una cuenta de MediaLab Works con una licencia que cubra el plugin (una suscripción activa, una licencia de por vida dentro de su período de actualizaciones, el paquete Jellyfin o la prueba gratuita de 30 días) para actualizar y revertir. Comprobar las versiones funciona sin licencia.

Instalación

Desde tu repositorio de plugins (recomendado). Jellyfin instala y actualiza el plugin por sí mismo.

  1. En tu cuenta de MediaLab Works abre Licenses → Jellyfin plugin repository y haz clic en Create address. Cópiala: es privada (contiene un token), así que no la compartas; puedes regenerarla o revocarla en cualquier momento.
  2. En Jellyfin abre Dashboard → Plugins → Repositories, haz clic en +, ponle un nombre (por ejemplo, MediaLab Works), pega la dirección y guarda.
  3. En Dashboard → Plugins → Catalog busca Self-Update by MediaLab, haz clic en Install y reinicia el servidor.

Desde el catálogo público. https://medialab.works/jellyfin/manifest.json enumera cada plugin de MediaLab Works publicado con su compilación pública; medialab Server lo añade por sí mismo. Puedes añadirlo del mismo modo para instalar un plugin antes de tener una clave: el plugin te pedirá entonces la licencia, o iniciará la prueba, en su página License. Con una licencia de por vida cuyo período de actualizaciones ha terminado, mantente en tu repositorio privado, que solo ofrece las versiones que tu licencia permite.

Manualmente, desde un archivo zip.

  1. En Account → Licenses descarga jf-selfupdate_x.y.z.zip (el SHA-256 del archivo se muestra junto al botón).
  2. Extráelo en una carpeta nueva Self-Update by MediaLab_x.y.z.0 dentro de la carpeta de plugins, /var/lib/jellyfin/plugins/ en una instalación por paquete.
  3. Reinicia el servidor.

Activación de la licencia

  1. Abre Dashboard → Plugins → Self-Update by MediaLab y haz clic en License (la página Server update también tiene un botón License).
  2. Pega tu clave de licencia y haz clic en Activate with key. El plugin contacta con el servidor de licencias, vincula la clave a este servidor y muestra la licencia como Active.
  3. ¿Todavía no tienes clave? En la misma página introduce tu correo e inicia la prueba de 30 días (se necesita tarjeta, nada que pagar hoy) o compra una licencia; el plugin se activa solo cuando el pago se realiza.

La licencia se comprueba una vez al día y en cada arranque del servidor, y de nuevo antes de una actualización, una reversión o una actualización automática, a menos que se haya comprobado poco antes. Sin internet la licencia sigue siendo válida durante 7 días tras la última comprobación exitosa. Sin una licencia válida, comprobar las versiones sigue funcionando, pero la actualización, la reversión y la actualización automática se rechazan con el motivo; no se elimina nada. Move license (release this server) en la página License libera la clave para otro servidor.

Uso

Abre Server update en el menú del panel de control de Jellyfin (solo administradores).

  1. Installed version: la revisión de medialab, el paquete instalado (por ejemplo, 12.2+ml4+deb12), la versión de Jellyfin y la versión más nueva encontrada en la última comprobación.
  2. Check now pide al actualizador que lea el repositorio de medialab. La lista Available versions muestra entonces cada versión, marcada como installed, newer u older.
  3. Update to x instala la versión más nueva; Install junto a una versión instala esa. Roll back to the previous version pasa a la versión justo inferior a la instalada; Roll back junto a una versión anterior pasa a esa. Desde medialab Server 12.2-ml.7 en adelante, revertir por debajo de 12.2-ml.7 se rechaza a propósito: las versiones anteriores tienen el actualizador menos seguro.
  4. Cada acción pide primero una confirmación y te recuerda que:
    • el servidor se reinicia, así que la reproducción en curso se detiene, y la página vuelve sola en 1–3 minutos;
    • la base de datos y la configuración se copian primero;
    • si el servidor no arranca correctamente, vuelve solo a la versión actual.
  5. Current operation sigue la solicitud: enviada, en ejecución, The server is restarting…, y luego la página se recarga cuando el servidor vuelve a responder. Last result muestra cómo terminó: succeeded; failed, rolled back automatically (con la versión a la que volvió el servidor); refused (con el motivo, por ejemplo una versión que no está en el repositorio).

Mientras se ejecuta una actualización, o mientras una solicitud espera ser recogida, una nueva solicitud se rechaza.

Actualización automática

En Automatic update:

  • Install new versions automatically está desactivada por defecto.
  • Update hour (server time): la hora a la que puede instalarse una nueva versión (04:00 si no la cambias). Haz clic en Save.

La tarea programada Check for medialab Server updates (categoría medialab, cada día a las 03:00) solo comprueba el repositorio. Con la actualización automática activada y una licencia válida, cuando la última comprobación encontró una versión más nueva que la instalada, se instala a la hora elegida, como máximo una vez al día, con la misma copia de seguridad y reversión automática que una actualización manual. Puedes cambiar la hora de la comprobación en Dashboard → Scheduled Tasks.

Actualizaciones y reversión del propio plugin

  • Desde el repositorio: Jellyfin muestra las nuevas versiones del plugin en Dashboard → Plugins y puede actualizarlo automáticamente; reinicia el servidor para cargar la nueva versión.
  • Desde la página License del plugin: con una licencia válida, Install update instala la versión más nueva que tu licencia permite y Roll back to x.y.z vuelve a la versión anterior del plugin. Reinicia el servidor después de cualquiera de las dos.
  • Licencia de por vida y actualizaciones automáticas. El catálogo público de Jellyfin (https://medialab.works/jellyfin/manifest.json) siempre ofrece la versión más nueva. Cuando el período de actualizaciones de una licencia de por vida ha terminado, las versiones publicadas después no están licenciadas: si las actualizaciones automáticas de plugins de Jellyfin instalan una, el plugin se detiene con «version not licensed» hasta que vuelves atrás con Roll back to x.y.z en su página License o compras un pase de actualizaciones. Para evitarlo, no dejes que Jellyfin actualice este plugin automáticamente: añade tu repositorio privado de plugins, que solo ofrece las versiones que tu licencia permite, en lugar del catálogo público, o elimina los disparadores de la tarea programada Update Plugins en Dashboard → Scheduled Tasks (esto detiene las actualizaciones automáticas de todos los plugins).

Código fuente

El código fuente GPL-3.0 de cada versión está en Account → Licenses (Source code), junto a la descarga, como archivo .tar.gz creado a partir del commit exacto de esa versión.

Resolución de problemas

  • «This server runs official Jellyfin»: el plugin solo funciona en medialab Server; la página muestra los comandos para cambiar, que conservan tus datos, usuarios, bibliotecas y plugins.
  • «medialab Server without the updater»: medialab Server se instaló desde un archivo o se compiló localmente, o el actualizador está incompleto. La página indica qué falta: /usr/lib/medialab-server/update.sh, o la carpeta /var/lib/medialab-update (ausente o sin permiso de escritura para el servicio Jellyfin). Instala los paquetes medialab-server y medialab-server-web.
  • «The request has not been picked up for more than 2 minutes»: el servicio actualizador no está atento a las solicitudes. En el servidor ejecuta systemctl status medialab-update.path.
  • «No result after 40 minutes»: mira el registro del actualizador con journalctl -u medialab-update.
  • «The medialab apt repository is missing»: el archivo /etc/apt/sources.list.d/medialab.sources no está en el servidor; reinstala el paquete del repositorio medialab.
  • «Not enough disk space»: libera al menos 1 GB en /usr/lib e inténtalo de nuevo.
  • «Updating to x failed; the server automatically returned to y»: la nueva versión no arrancó correctamente y el servidor volvió a la anterior, con la copia de seguridad restaurada. Envíanos el registro del plugin (página License → Log).
  • «Updating to x failed and the server does not answer after returning to y»: el mensaje muestra dónde está la copia de seguridad. Comprueba el servidor con journalctl -u jellyfin y journalctl -u medialab-update, y contáctanos.
  • La actualización o la reversión se rechaza con un mensaje de licencia: activa la licencia en la página License; comprobar las versiones funciona sin ella.

La compilación es pública; para usar el plugin necesitas una licencia o la prueba gratuita de 30 días.