Skip to content

Déploiement de Jellyfin avec Docker Compose

Jellyfin est un serveur multimédia open-source et gratuit qui organise vos films, séries, musique et photos, récupère automatiquement affiches et résumés, et vous permet de les streamer depuis n'importe quel appareil — TV, téléphone, tablette — chez vous ou à distance. Contrairement à Plex, aucun compte en ligne n'est requis et toutes les fonctionnalités sont disponibles sans abonnement.


Prérequis

  • Docker et Docker Compose installés — voir Installation Docker
  • Le port 8096 disponible sur la machine hôte

1⃣ Arborescence recommandée

/opt/docker-compose/jellyfin/
├── docker-compose.yml
├── config/               # Base de données Jellyfin, métadonnées (généré automatiquement)
└── media/
    ├── films/
    ├── series/
    ├── musique/
    └── photos/

Créer les dossiers avant le premier démarrage :

mkdir -p /opt/docker-compose/jellyfin/media/{films,series,musique,photos}

2⃣ Exemple de fichier docker-compose.yml

services:
  jellyfin:
    image: linuxserver/jellyfin:latest
    container_name: jellyfin
    restart: unless-stopped
    ports:
      - "8096:8096"
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Paris
    volumes:
      - ./config:/config
      - ./media/films:/data/films
      - ./media/series:/data/series
      - ./media/musique:/data/musique
      - ./media/photos:/data/photos

PUID / PGID

Ces valeurs correspondent à l'utilisateur Linux propriétaire des fichiers média. Vérifier avec id <utilisateur> sur le serveur.


3⃣ Lancement

cd /opt/docker-compose/jellyfin
docker compose up -d

Jellyfin est prêt quand les logs affichent [INF] Startup complete :

docker compose logs -f

4⃣ Configuration initiale

Accédez à l'interface web depuis votre réseau local :

http://<IP_SERVEUR>:8096

Première configuration

L'assistant de démarrage doit être complété depuis le réseau local. Derrière un reverse proxy, il peut être inaccessible — connectez-vous d'abord en direct sur le port 8096.

Étapes de l'assistant :

  1. Choisir la langue
  2. Créer le compte administrateur (noter le mot de passe)
  3. Ajouter les bibliothèques en pointant vers les chemins montés dans le conteneur :
Bibliothèque Chemin dans le conteneur
Films /data/films
Séries /data/series
Musique /data/musique
Photos /data/photos
  1. Désactiver l'accès à distance si souhaité (modifiable plus tard)
  2. Terminer — Jellyfin lance immédiatement le scan des médias

5⃣ Gestion des utilisateurs

Jellyfin gère les utilisateurs localement, sans compte en ligne obligatoire.

  • Créer un utilisateur : Tableau de bord → Utilisateurs → +
  • Droits d'accès : par utilisateur, choisissez quelles bibliothèques sont accessibles
  • Administrateur : cocher "Autoriser cet utilisateur à gérer le serveur" dans les paramètres de l'utilisateur

6⃣ Gestion du service

Action Commande
Vérifier l'état docker compose ps
Logs en direct docker compose logs -f
Redémarrer docker compose restart
Arrêter docker compose down
Mettre à jour docker compose pull && docker compose up -d
Nettoyage complet docker compose down -v --rmi all --remove-orphans

7⃣ Notes complémentaires

  • Transcodage hardware (Intel iGPU) : ajouter dans docker-compose.yml et activer dans Tableau de bord → Lecture → Transcodage :
    devices:
      - /dev/dri:/dev/dri
    
  • Espace disque : Jellyfin génère des miniatures et des métadonnées dans ./config/. Prévoir plusieurs Go selon la taille de votre bibliothèque. Si l'espace disque est critique, vérifier avec docker system df et purger le cache de build Docker si nécessaire : docker builder prune -af
  • Clients : applications disponibles sur Android, iOS, Android TV, Apple TV, Roku, Kodi, Fire TV, navigateur web
  • Sauvegardes : synchroniser ./config/ (contient la base de données et les métadonnées) ainsi que vos dossiers médias

Conclusion

Jellyfin permet de centraliser l'ensemble de vos médias personnels sur un seul serveur et de les streamer sur tous vos appareils, sans abonnement ni compte en ligne. Une fois les bibliothèques configurées, la gestion est entièrement automatique : scraping des métadonnées et mises à jour de la bibliothèque.