Instalar medialab Server con apt

medialab Server se distribuye como paquetes Debian firmados desde https://apt.medialab.works/debian:

Paquete Contenido
medialab-server el servidor (basado en Jellyfin 12.2), el servicio del sistema jellyfin y el actualizador de la propia aplicación
medialab-server-web la interfaz web
jellyfin-ffmpeg8 la compilación de FFmpeg de Jellyfin usada para la transcodificación
medialab-repo la definición del repositorio y su clave de firma

Arquitecturas: amd64 y arm64.

Sistemas compatibles

Los paquetes se compilan para Debian 12 (bookworm) (+deb12 en la versión) y sus derivadas basadas en bookworm, como Raspberry Pi OS (64 bits) bookworm. Dependen de las bibliotecas de Debian 12 (por ejemplo libicu72), así que no se instalan en versiones de Ubuntu ni en otras versiones de Debian. En Ubuntu, usa la imagen de contenedor (consulta Instalar medialab Server en un contenedor).

1. Añadir el repositorio

El paquete medialab-repo instala la definición del repositorio y la clave de firma:

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

Crea /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

Alternativa manual. Descarga la clave y crea el mismo archivo tú mismo:

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

La huella de la clave debe ser 6B7D 46D8 2C3C 4D4C 0A14 2F92 4189 96EB 3CE1 59C7 ("medialab Server packages packages@medialab.works"). Después escribe el archivo medialab.sources que se muestra arriba.

apt comprueba la firma del repositorio con esta clave en cada apt update.

2. Instalación

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

medialab-server sustituye a jellyfin-server y medialab-server-web sustituye a jellyfin-web: si Jellyfin ya está instalado desde el repositorio de Jellyfin, apt elimina esos dos paquetes y conserva tus datos, porque medialab Server usa las mismas carpetas. En el primer arranque la base de datos se migra al formato 12.2, que una versión anterior de Jellyfin ya no puede volver a abrir: haz una copia de seguridad primero (más abajo). Si el repositorio de Jellyfin sigue configurado, apt mantiene instalados los paquetes de medialab; puedes eliminar el repositorio de Jellyfin si ya no lo necesitas.

3. El servicio

El servidor se ejecuta como el servicio del sistema jellyfin, bajo el usuario jellyfin:

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

Abre http://<server>:8096 y completa el asistente de configuración.

Ruta Contenido
/etc/jellyfin ajustes (system.xml, network.xml, encoding.xml, logging.json)
/var/lib/jellyfin base de datos, plugins, metadatos
/var/log/jellyfin registros
/var/cache/jellyfin caché
/etc/default/jellyfin opciones de arranque (carpeta web, ruta de FFmpeg, opciones extra)
/usr/share/jellyfin/web interfaz web
/usr/lib/jellyfin-ffmpeg/ffmpeg FFmpeg

Para cambiar el usuario del servicio u otras opciones de systemd, usa sudo systemctl edit jellyfin (o el archivo /etc/systemd/system/jellyfin.service.d/jellyfin.service.conf).

Para la transcodificación por hardware con una GPU Intel o AMD, el paquete añade el usuario jellyfin a los grupos render y video; elige el método en Panel de control → Reproducción → Transcodificación. Para NVIDIA, instala primero el controlador NVIDIA de tu distribución.

4. Actualizaciones

sudo apt update
sudo apt upgrade

El paquete detiene el servicio durante la actualización y lo vuelve a iniciar con la nueva versión. El paquete también contiene un servicio actualizador (medialab-update.path / medialab-update.service) usado por el plugin Self-Update by MediaLab para actualizar el servidor desde la interfaz web; instala los paquetes de este mismo repositorio.

Para mantenerte en una versión: sudo apt-mark hold medialab-server medialab-server-web (sudo apt-mark unhold … para deshacerlo).

Copia de seguridad

Detén el servicio y copia las carpetas de ajustes y datos:

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

Desinstalación

sudo apt remove medialab-server medialab-server-web     # conserva los ajustes, los datos y los registros
sudo apt remove medialab-repo                            # elimina el repositorio

sudo apt purge medialab-server también elimina /etc/jellyfin, /var/lib/jellyfin (base de datos, plugins, metadatos), /var/log/jellyfin, /var/cache/jellyfin y el usuario jellyfin. Haz una copia de seguridad antes de purgar.

Resolución de problemas

  • apt update informa de un error de firma (NO_PUBKEY / EXPKEYSIG): reinstala medialab-repo (paso 1) para obtener la clave actual.
  • Dependencias incumplidas como libicu72: el sistema no es Debian 12; usa la imagen de contenedor.
  • El servicio no arranca: sudo journalctl -u jellyfin -n 100 y los archivos de /var/log/jellyfin muestran la causa. Comprueba que el usuario jellyfin pueda leer tus carpetas de medios.
  • El puerto 8096 ya está en uso: hay otro Jellyfin u otro servidor de medios en ejecución; detenlo, o cambia el puerto en Panel de control → Red.