Pourquoi quitter Plex maintenant
Pendant des années, Plex offrait l'accès distant gratuitement. En juillet 2026, la donne a changé : sans abonnement Plex Pass (2,99 $ par mois ou 749,99 $ à vie), le streaming hors de votre réseau local est bloqué. La notification ou le premier refus d'accès depuis un mobile ou un bureau à distance est souvent le déclencheur : le lecteur cherche une sortie immédiate, pas une évaluation longue.
Jellyfin est la réponse directe. C'est un fork communautaire de la base de code Emby, publié sous licence GPL-2.0, sans aucun compte obligatoire, sans telemetry, et sans fonctionnalité bridée derrière un mur payant. Il implémente l'API Plex — ce qui signifie que les clients Plex existants (Infuse, Plexamp, nPlayer, et d'autres) continuent de fonctionner sans reconfiguration majeure. Les fichiers médias ne bougent pas : seule la couche serveur change.
Ce que Jellyfin apporte concrètement
- Zéro paywall — l'accès distant, les comptes multi-utilisateurs et le transcodage sont disponibles sans abonnement ni Pass à vie.
- Aucun compte obligatoire — l'installation ne demande pas de lier un service externe ; la gestion des utilisateurs est entièrement locale.
- Zéro telemetry — aucune donnée d'usage n'est envoyée à un tiers par défaut ; le code est auditable (GPL-2.0).
- Compatibilité API Plex — les clients qui parlent l'API Plex détectent Jellyfin comme un serveur Plex standard, sans migration des applications côté client.
- Les fichiers médias restent en place — seule la base de métadonnées est à reconstituer ; le stockage n'est pas touché.
- Clients natifs disponibles — Android, iOS, Android TV, Apple TV, navigateur web, et des dizaines d'applications tierces supportent Jellyfin nativement.
- Transcodage matériel supporté — Intel Quick Sync, VAAPI et NVENC sont configurables pour réduire la charge CPU sur les flux haute définition.
- Communauté active et mises à jour régulières — publication fréquente, plugins communautaires, et documentation officielle complète.
Prérequis avant de commencer
La migration suppose que vous avez déjà un VPS avec Docker installé. Jellyfin en Direct Play (les appareils lisent le fichier sans transcodage) tourne correctement avec 2 vCPU et 2 Go de RAM. Si vous anticipez du transcodage logiciel 1080p, comptez 4 vCPU minimum par flux simultané : Jellyfin sollicite fortement le CPU sans accélération matérielle. Pour du 4K, un GPU ou une puce Intel avec Quick Sync sont fortement recommandés.
Le stockage est le poste dimensionnant : une médiathèque de taille moyenne pèse plusieurs téraoctets. Vos fichiers médias restent là où ils sont — il n'y a aucune copie à faire. Côté réseau, votre domaine doit pointer vers le VPS et le port 8096 doit être accessible en interne (le reverse proxy s'occupe de l'exposition HTTPS).
Ce qu'il vous faut en résumé : un VPS sous Linux (Debian 12 ou Ubuntu 22.04+), Docker et docker compose v2, un domaine configuré, un reverse proxy (Caddy ou Nginx), et l'accès SSH au serveur.
Migration pas à pas
Exporter vos données Plex avant d'arrêter le service
Avant toute chose, exportez votre bibliothèque Plex pendant qu'elle fonctionne encore. Depuis le serveur Plex, copiez le dossier de métadonnées (~/.config/Plex Media Server/ sur Linux, /var/lib/plexmediaserver/ selon l'installation). Cette sauvegarde vous permet de retrouver listes de lecture, progrès de lecture et notes si vous décidez un jour de revenir.
Vos fichiers médias (/mnt/media/films, /mnt/media/series, etc.) ne bougent pas — ne les déplacez pas.
Arrêter proprement Plex
Arrêtez le conteneur ou le service Plex :
docker compose stop plexOu, si Plex tourne via systemd :
systemctl stop plexmediaserverLibérez le port 32400 ; Jellyfin utilisera le 8096 par défaut, vous pouvez donc laisser le port Plex libre ou le fermer dans votre pare-feu.
Créer la structure de dossiers Jellyfin
Créez les dossiers de configuration et de cache que Jellyfin va utiliser :
mkdir -p /opt/jellyfin/config /opt/jellyfin/cacheVos médias restent à leur emplacement d'origine — ne les déplacez pas. Jellyfin les déclarera comme bibliothèques dans l'assistant initial.
Rédiger le fichier docker-compose.yml
Créez /opt/jellyfin/docker-compose.yml avec le contenu suivant :
cat > /opt/jellyfin/docker-compose.yml << 'EOF'
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
restart: unless-stopped
environment:
- JELLYFIN_PublishedServerUrl=https://media.yourdomain.com
volumes:
- /opt/jellyfin/config:/config
- /opt/jellyfin/cache:/cache
- /mnt/media:/media:ro
ports:
- "127.0.0.1:8096:8096"
EOFAdaptez /mnt/media au chemin réel de vos médias. Le :ro (lecture seule) est une bonne pratique : Jellyfin n'a pas besoin d'écrire dans vos fichiers médias.
Démarrer Jellyfin et ouvrir l'assistant
Lancez le conteneur :
docker compose -f /opt/jellyfin/docker-compose.yml up -dOuvrez http://votre-ip:8096 dans un navigateur. L'assistant vous demande de créer un compte administrateur local (aucune adresse e-mail externe requise), puis de déclarer vos bibliothèques. Pointez vers vos dossiers médias existants (/media/films, /media/series, etc.) — Jellyfin lance un scan automatique et reconstruit les métadonnées depuis TheMovieDB et TheTVDB.
Configurer le reverse proxy avec SSL
Exposez Jellyfin en HTTPS via Caddy ou Nginx. Exemple Caddy (fichier Caddyfile) :
media.yourdomain.com {
reverse_proxy 127.0.0.1:8096
}Caddy obtient et renouvelle le certificat Let's Encrypt automatiquement. Avec Nginx, ajoutez les en-têtes X-Real-IP et X-Forwarded-For que Jellyfin utilise pour les logs d'accès.
Reconfigurer vos clients et activer l'accès distant
Dans Jellyfin (Tableau de bord → Réseau), vérifiez que l'URL publiée (JELLYFIN_PublishedServerUrl) est correcte. Vos applications natives Jellyfin (Android, iOS, Apple TV) peuvent ajouter le serveur par URL. Les clients qui supportent l'API Plex (Infuse, par exemple) peuvent aussi pointer vers Jellyfin : dans les réglages Infuse, ajoutez un serveur Plex en entrant l'URL de votre Jellyfin — le protocole de découverte est compatible.
Vérifiez l'accès depuis une connexion mobile (pas votre Wi-Fi) pour confirmer que l'accès distant fonctionne sans restriction.
Migrer les listes de lecture et les progrès (optionnel)
Jellyfin ne lit pas nativement la base SQLite de Plex. Deux options : reconstruire manuellement les listes de lecture dans l'interface Jellyfin (quelques minutes pour un utilisateur moyen), ou utiliser l'outil communautaire PlexToJellyfin pour importer les progrès de lecture (dernier épisode vu, temps de lecture) depuis l'export XML de Plex. Ce script lit le fichier Plex Media Server/Plug-in Support/Databases/ et pousse les données via l'API Jellyfin.
Plex Pass 2026 vs Jellyfin : comparatif fonctionnel
| Fonctionnalité | Plex (sans Pass) | Jellyfin |
|---|---|---|
| Streaming local (réseau maison) | Oui | Oui |
| Streaming distant (hors réseau) | Payant (2,99 $/mois) | Gratuit |
| Compte externe obligatoire | Oui | Non |
| Telemetry / données envoyées | Oui | Non (par défaut) |
| Licence du code | Propriétaire | GPL-2.0 |
| Compatibilité clients Plex (API) | Native | Oui (émulation API) |
| Transcodage matériel | Payant (Pass requis) | Gratuit |
| Comptes multi-utilisateurs | Limité sans Pass | Sans plafond, local |
Configuration post-installation recommandée
Une fois la migration terminée, quelques réglages améliorent l'expérience au quotidien.
Métadonnées. Jellyfin utilise TheMovieDB et TheTVDB par défaut. Si certains films ou séries ne sont pas reconnus automatiquement, renommez les fichiers selon la convention Titre (Année)/Titre (Année).mkv pour les films et Série/Saison 01/Série - S01E01.mkv pour les séries — Jellyfin applique ces conventions lors du scan.
Sous-titres. Activez OpenSubtitles ou sous-titres intégrés dans Tableau de bord → Plugins. La récupération est automatique lors du scan de la bibliothèque.
Transcodage matériel. Si votre VPS dispose d'une puce Intel, activez VAAPI dans Tableau de bord → Lecture → Transcodage. Cela réduit significativement la charge CPU lors des conversions de flux.
Sécuriser l'accès Jellyfin
Jellyfin expose une interface web publique par défaut une fois derrière votre reverse proxy. Quelques mesures de durcissement à appliquer dès la mise en ligne : désactivez la création de compte publique (Tableau de bord → Utilisateurs → Désactiver l'inscription), activez l'authentification à deux facteurs pour le compte administrateur, et limitez l'accès à l'interface d'administration au réseau local si possible. Si vous utilisez Nginx, ajoutez un rate-limit sur les routes /Users/AuthenticateByName pour freiner les tentatives de force brute. Enfin, maintenez l'image Docker à jour : docker compose pull && docker compose up -d suffit pour récupérer les correctifs de sécurité.
Dépannage : erreurs fréquentes après migration
Quelques erreurs reviennent systématiquement lors d'une migration Plex → Jellyfin.
Connection refused sur le port 8096. Le conteneur est démarré mais rien ne répond. Vérifiez que le mapping de port est bien 127.0.0.1:8096:8096 et non 0.0.0.0:8096:8096 si vous voulez passer par le reverse proxy. Commande de diagnostic : docker logs jellyfin.
Les métadonnées ne se chargent pas. Le scan initial peut durer de 10 minutes à plusieurs heures selon la taille de la bibliothèque. Surveillez la progression dans Tableau de bord → Activité. Si des fichiers restent sans affiches, vérifiez que le nom de fichier respecte la convention et forcez un nouveau scan avec « Analyser les métadonnées ».
L'accès distant ne fonctionne pas. Si https://media.yourdomain.com répond depuis le serveur mais pas depuis l'extérieur, vérifiez que le pare-feu autorise le port 443 (ufw allow 443), que le DNS pointe vers la bonne IP, et que la variable JELLYFIN_PublishedServerUrl correspond exactement à l'URL publique configurée dans le reverse proxy.
Infuse ou un client Plex-compatible ne détecte pas le serveur. Dans Infuse, sélectionnez « Plex » comme type de serveur et entrez manuellement l'URL de votre Jellyfin. La découverte automatique via bonjour ne fonctionne pas en dehors du réseau local — une URL manuelle est toujours plus fiable.
Le transcodage CPU monte à 100 %. Sans accélération matérielle, un seul flux 4K transcode peut saturer plusieurs cœurs. Passez en VAAPI si votre processeur le supporte, ou encouragez vos utilisateurs à activer le Direct Play dans les réglages de leur client.
Aller plus loin : liens utiles et maillage
La migration couvre le remplacement de Plex, mais Jellyfin s'intègre dans un écosystème plus large. Si vous partez de zéro (sans Plex préalable), le guide Héberger Jellyfin sur votre propre VPS couvre l'installation initiale depuis le début. Pour un comparatif fonctionnel approfondi entre les deux plateformes, consultez Jellyfin vs Plex : quel serveur multimédia choisir.
Si cette migration fait partie d'un mouvement plus large vers le self-hosting pour réduire vos coûts SaaS, héberger Ghost sur votre VPS couvre un autre cas courant. La logique est la même : un logiciel libre, un VPS, un accès dont vous contrôlez les règles.
La documentation officielle Jellyfin (docs.jellyfin.org) est complète et maintenue activement — c'est la référence pour les cas avancés (hardware transcoding, LDAP, plugins, reverse proxy avancé).