Passer à Jellyfin 12.2 : installer medialab Server avec Docker Compose ou apt

Guide pratique pour basculer un serveur Jellyfin existant vers medialab Server, la variante gratuite GPL-2.0 de Jellyfin 12.2 avec MediaLab TV intégré, en conservant bibliothèques, utilisateurs et applications.

Pourquoi changer maintenant

Si vous faites tourner Jellyfin sur votre propre matériel, vous avez probablement suivi la sortie 12.2. medialab Server est notre variante de Jellyfin 12.2 : les mêmes bibliothèques, utilisateurs et applications, avec nos plugins vérifiés intégrés et MediaLab TV inclus. C’est un logiciel libre sous GPL-2.0, sans clé de licence et avec un code source public.

Il ne s’agit pas d’une migration. Les applications Jellyfin pour Android, iOS, TV et le web se connectent exactement comme au Jellyfin officiel. Ce qui change, c’est la maison où vivent vos plugins : notre catalogue est ajouté automatiquement, nos plugins affichent Verified – medialab et passent en premier parmi les tuners TV en direct, les sources de guide et les fournisseurs de sous-titres, et vous pouvez réordonner cette liste quand vous le souhaitez.

Voici deux façons de procéder — une pile jellyfin docker compose et les paquets apt sur Debian 12 — plus la seule chose à faire d’abord : une sauvegarde.

Avant de commencer : la porte à sens unique

Au premier démarrage, la base de données Jellyfin est mise à niveau vers le format 12.2. Un Jellyfin plus ancien ne pourra plus ouvrir cette base. Il n’existe aucun retour en arrière pour les données elles-mêmes : considérez donc cette mise à niveau comme définitive.

Donc, avant toute chose :

  • Faites une sauvegarde des réglages et des données. Pour une installation en conteneur, cela signifie tout le dossier /config ; pour apt, /etc/jellyfin et /var/lib/jellyfin.
  • Conservez la sauvegarde dans un endroit inaccessibles au serveur, et notez la version de Jellyfin que vous utilisiez.
  • Si vous avez des utilisateurs dont les noms ne diffèrent que par la casse, vérifiez-les avant la mise à niveau. La documentation le signale comme un point à contrôler avant de basculer.

Faites cela, et le reste est une routine.

Prérequis

  • Une machine 64 bits x86 ou ARM. Ubuntu convient pour le conteneur.
  • Pour la voie conteneur : Docker (ou Podman, Unraid, Portainer, Kubernetes), un dossier pour /config, un pour /cache, votre dossier multimédia, et les PUID/PGID numériques du compte qui doit posséder les réglages (id -u, id -g).
  • Pour la voie apt : Debian 12 (bookworm), amd64 ou arm64. Les paquets nécessitent les bibliothèques de Debian 12 et ne s’installent donc pas sur Ubuntu — utilisez le conteneur dans ce cas.
  • Vos données Jellyfin existantes, sauvegardées.

Étape 1 : installer avec Docker Compose

L’image est ghcr.io/cristiancasapu/medialab-server, compilée pour linux/amd64 et linux/arm64 à partir des mêmes paquets Debian signés que le dépôt apt.

Créez un compose.yaml :

services:
  medialab-server:
    image: ghcr.io/cristiancasapu/medialab-server:12.2-ml.10
    container_name: medialab-server
    restart: unless-stopped
    ports:
      - "8096:8096"
      - "7359:7359/udp"
    volumes:
      - ./config:/config
      - ./cache:/cache
      - /srv/media:/media:ro
    environment:
      PUID: 1000
      PGID: 1000
      TZ: Europe/Bucharest
      MLW_SERVER_NAME: Home media
      MLW_ADMIN_USER: admin
      MLW_ADMIN_PASSWORD_FILE: /run/secrets/admin_password
    secrets:
      - admin_password

secrets:
  admin_password:
    file: ./secrets/admin_password

Puis :

mkdir -p secrets && printf '%s' 'a-long-password' > secrets/admin_password
docker compose up -d
docker compose logs -f

Quelques précisions sur les tags : 12.2-ml.10 épingle une version (recommandé si vous voulez choisir quand mettre à jour), 12.2 suit la dernière version 12.2 et latest la dernière version tout court. Le tag 12.2-ml10-deb12 nomme la version apt exacte contenue dans l’image.

Les variables d’administrateur ne fonctionnent que sur un nouveau serveur ; sur un serveur déjà configuré, elles sont ignorées. Le mot de passe n’apparaît jamais dans les journaux du conteneur, c’est pourquoi il passe par un fichier plutôt que par la ligne de commande. Un exemple complet avec un fichier .env se trouve dans le dépôt (examples/compose.yaml, examples/.env.example).

Sur Unraid, ajoutez un conteneur et indiquez comme URL de modèle le fichier medialab-server.xml du dossier examples/unraid/ du dépôt (ou copiez-le dans /boot/config/plugins/dockerMan/templates-user/), vérifiez que /config pointe vers /mnt/user/appdata/medialab-server et /media vers votre partage multimédia, utilisez PUID 99 et PGID 100, et ajoutez --device=/dev/dri dans Extra Parameters si vous avez un GPU Intel ou AMD. Portainer et Kubernetes fonctionnent avec la même image et les mêmes volumes.

Étape 2 : installer avec apt sur Debian 12

Les paquets proviennent de https://apt.medialab.works/debian. Ajoutez d’abord le dépôt, fourni sous forme de paquet signé :

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

Cela crée /etc/apt/sources.list.d/medialab.sources et installe la clé de signature. Si vous préférez le faire à la main, téléchargez la clé dans /usr/share/keyrings/medialab-archive-keyring.gpg et vérifiez l’empreinte : elle doit être 6B7D 46D8 2C3C 4D4C 0A14 2F92 4189 96EB 3CE1 59C7, pour « medialab Server packages packages@medialab.works ». Écrivez ensuite le même fichier medialab.sources. apt vérifie la signature à chaque apt update.

Installez :

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

medialab-server remplace jellyfin-server et medialab-server-web remplace jellyfin-web. Si Jellyfin est déjà installé depuis le dépôt de Jellyfin, apt supprime ces deux paquets et conserve vos données, car medialab Server utilise les mêmes dossiers. Si le dépôt de Jellyfin est toujours configuré, apt garde les paquets medialab installés ; vous pourrez supprimer l’ancien dépôt quand vous n’en aurez plus besoin.

Le serveur tourne comme le service jellyfin habituel, sous l’utilisateur jellyfin :

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

Les chemins sont les habituels : /etc/jellyfin pour les réglages, /var/lib/jellyfin pour la base de données, les plugins et les métadonnées, /var/log/jellyfin, /var/cache/jellyfin, /etc/default/jellyfin pour les options de démarrage, /usr/share/jellyfin/web pour l’interface web et /usr/lib/jellyfin-ffmpeg/ffmpeg. Pour changer l’utilisateur du service ou d’autres options systemd, utilisez sudo systemctl edit jellyfin. Pour le transcodage matériel sur un GPU Intel ou AMD, le paquet ajoute l’utilisateur jellyfin aux groupes render et video.

Étape 3 : premier démarrage et vérifications

Ouvrez http://<server>:8096. Sur un nouveau serveur, l’assistant de configuration demande le premier administrateur, la langue et vos bibliothèques depuis /media. Sur un serveur existant, vos données sont déjà là — passez-les en revue :

  • Bibliothèques : les chemins sont toujours valides et les analyses se terminent.
  • Utilisateurs : tout le monde peut se connecter, et aucun nom ne diffère uniquement par la casse.
  • Plugins : notre catalogue est ajouté de lui-même et nos plugins affichent Verified – medialab ; le serveur vérifie leurs signatures et signale un plugin modifié après sa publication.
  • Accélération matérielle : confirmez que le transcodage fonctionne, et que les groupes render/video (apt) ou /dev/dri (conteneur) sont en place.

MediaLab TV, inclus

Depuis 12.2-ml.8, l’application TV fait partie du serveur, gratuitement — sans plugin ni abonnement séparé. Sur un téléviseur sans application Jellyfin, ouvrez https://<server>:8096/web/tv/, ou utilisez l’entrée MediaLab TV du menu des utilisateurs, et vous obtenez l’interface façon Netflix : Continue Watching, Next Up, bibliothèques, My List, TV en direct, pages de titres, recherche avec clavier à l’écran et profils, avec son propre lecteur pour les pistes audio, les sous-titres, la reprise et Skip intro / recap / credits.

Les réglages se trouvent dans le menu des utilisateurs sous MediaLab TV – admin : nom, logo (PNG/SVG), couleurs, langue, chemin d’accès et Turnstile. Si vous aviez le plugin jf-tvapp installé, le serveur reprend ses réglages, son logo et sa clé Turnstile et ne charge plus le plugin ; les mêmes adresses continuent de fonctionner. Sur le Jellyfin officiel, MediaLab TV reste le plugin jf-tvapp.

Mise à jour et retour en arrière

  • Conteneur : récupérez le nouveau tag 12.2-ml.N et recréez le conteneur ; les réglages dans /config restent.
  • apt : sudo apt update && sudo apt upgrade, ou utilisez le plugin Self-Update depuis l’interface web.

Chaque version est listée dans le changelog. Pour revenir au Jellyfin officiel, réinstallez ses paquets ou son image sur les mêmes données — mais rappelez-vous que la base est déjà au format 12.2 : il vous faut donc un Jellyfin officiel capable de l’ouvrir. C’est précisément pourquoi la sauvegarde vient en premier.

Conseils et dépannage

  • Gardez la sauvegarde jusqu’à être satisfait. La mise à niveau de la base est à sens unique ; une copie de /config (ou de /etc/jellyfin plus /var/lib/jellyfin) est votre seul retour possible.
  • Ubuntu et apt ne font pas bon ménage ici. Les paquets nécessitent les bibliothèques de Debian 12 ; sur Ubuntu, utilisez l’image conteneur.
  • Les journaux d’abord. docker compose logs -f pour les conteneurs, sudo journalctl -u jellyfin -f pour apt.
  • Permissions. Un mauvais PUID/PGID se traduit par des médias illisibles ou un /config non accessible en écriture.
  • L’ordre des plugins vous appartient. Nos plugins passent en premier parmi les tuners, les sources de guide et les fournisseurs de sous-titres, mais vous pouvez changer l’ordre à tout moment.

Conclusion

medialab Server est la mise à niveau la moins spectaculaire qui soit : mêmes applications, mêmes données, mêmes dossiers — avec Jellyfin 12.2 en dessous, nos plugins vérifiés devant et MediaLab TV intégré. Sauvegardez, choisissez Docker Compose ou apt, et démarrez. La page produit et le guide utilisateur couvrent les détails, et la base de connaissances contient les articles complets sur le conteneur et apt. Des questions ? La FAQ et la page de contact sont ouvertes.

Cet article a été rédigé avec l’aide de l’IA à partir de la documentation de nos produits ou des sources indiquées et vérifié automatiquement avant publication.

À lire ensuite

Vous utilisez Emby, Jellyfin ou Nextcloud ?

Nos plugins et applications ajoutent la TV en direct, les sous-titres, l’inscription et la sécurité à votre propre serveur, avec un essai gratuit.