Installer medialab Server avec apt

medialab Server est distribué sous forme de paquets Debian signés depuis https://apt.medialab.works/debian :

Paquet Contenu
medialab-server le serveur (basé sur Jellyfin 12.2), le service système jellyfin et le programme de mise à jour intégré
medialab-server-web l’interface web
jellyfin-ffmpeg8 la version compilée de FFmpeg de Jellyfin, utilisée pour le transcodage
medialab-repo la définition du dépôt et sa clé de signature

Architectures : amd64 et arm64.

Systèmes pris en charge

Les paquets sont compilés pour Debian 12 (bookworm) (+deb12 dans le numéro de version) et ses dérivées basées sur bookworm, comme Raspberry Pi OS (64 bits) bookworm. Ils dépendent des bibliothèques de Debian 12 (par exemple libicu72) et ne s’installent donc ni sur les versions d’Ubuntu ni sur les autres versions de Debian. Sur Ubuntu, utilisez plutôt l’image conteneur (voir Installer medialab Server dans un conteneur).

1. Ajouter le dépôt

Le paquet medialab-repo installe la définition du dépôt et la clé de signature :

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

Il crée /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

Alternative manuelle. Téléchargez la clé et créez vous-même le même fichier :

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

L’empreinte de la clé doit être 6B7D 46D8 2C3C 4D4C 0A14 2F92 4189 96EB 3CE1 59C7 (« medialab Server packages packages@medialab.works »). Écrivez ensuite le fichier medialab.sources montré ci-dessus.

apt vérifie la signature du dépôt avec cette clé à chaque apt update.

2. Installation

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. Au premier démarrage, la base de données est migrée vers le format 12.2, qu’une ancienne version de Jellyfin ne peut plus rouvrir : faites d’abord une sauvegarde (voir ci-dessous). Si le dépôt de Jellyfin est encore configuré, apt conserve les paquets medialab installés ; vous pouvez supprimer le dépôt de Jellyfin si vous n’en avez plus besoin.

3. Le service

Le serveur s’exécute en tant que service système jellyfin, sous l’utilisateur jellyfin :

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

Ouvrez http://<server>:8096 et terminez l’assistant de configuration.

Chemin Contenu
/etc/jellyfin paramètres (system.xml, network.xml, encoding.xml, logging.json)
/var/lib/jellyfin base de données, plugins, métadonnées
/var/log/jellyfin journaux
/var/cache/jellyfin cache
/etc/default/jellyfin options de démarrage (dossier web, chemin de FFmpeg, options supplémentaires)
/usr/share/jellyfin/web interface web
/usr/lib/jellyfin-ffmpeg/ffmpeg FFmpeg

Pour changer l’utilisateur du service ou d’autres options systemd, utilisez sudo systemctl edit jellyfin (ou le fichier /etc/systemd/system/jellyfin.service.d/jellyfin.service.conf).

Pour le transcodage matériel avec un GPU Intel ou AMD, le paquet ajoute l’utilisateur jellyfin aux groupes render et video ; choisissez la méthode dans Dashboard → Playback → Transcoding. Pour NVIDIA, installez d’abord le pilote NVIDIA de votre distribution.

4. Mises à jour

sudo apt update
sudo apt upgrade

Le paquet arrête le service pendant la mise à jour et le redémarre sur la nouvelle version. Le paquet contient aussi un service de mise à jour (medialab-update.path / medialab-update.service) utilisé par le plugin Self-Update by MediaLab pour mettre à jour le serveur depuis l’interface web ; il installe les paquets depuis ce même dépôt.

Pour rester sur une version : sudo apt-mark hold medialab-server medialab-server-web (sudo apt-mark unhold … pour annuler).

Sauvegarde

Arrêtez le service et copiez les dossiers de paramètres et de données :

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

Désinstallation

sudo apt remove medialab-server medialab-server-web     # keeps settings, data and logs
sudo apt remove medialab-repo                            # removes the repository

sudo apt purge medialab-server supprime aussi /etc/jellyfin, /var/lib/jellyfin (base de données, plugins, métadonnées), /var/log/jellyfin, /var/cache/jellyfin et l’utilisateur jellyfin. Faites une sauvegarde avant le purge.

Dépannage

  • apt update signale une erreur de signature (NO_PUBKEY / EXPKEYSIG) : réinstallez medialab-repo (étape 1) pour obtenir la clé actuelle.
  • Dépendances non satisfaites comme libicu72 : le système n’est pas Debian 12 ; utilisez l’image conteneur.
  • Le service ne démarre pas : sudo journalctl -u jellyfin -n 100 et les fichiers de /var/log/jellyfin indiquent la raison. Vérifiez que l’utilisateur jellyfin peut lire vos dossiers multimédias.
  • Le port 8096 est déjà utilisé : un autre Jellyfin ou serveur multimédia tourne ; arrêtez-le, ou changez le port dans Dashboard → Networking.