Jellyfin sur un VPS : comment créer son propre serveur multimédia
Un dossier rempli de vidéos ressemble rarement à une médiathèque pratique : noms de fichiers incohérents, sous-titres séparés et recherche manuelle du bon épisode. Jellyfin transforme ce type d’archive en service de streaming personnel avec affiches, descriptions, profils utilisateurs et reprise de la lecture.
Jellyfin ne vend toutefois aucun abonnement et ne fournit pas de catalogue prêt à l’emploi. Il fonctionne avec vos propres fichiers et peut être hébergé sur un ordinateur à domicile, un NAS ou un VPS. Nous allons examiner ses fonctionnalités, les exigences du serveur et son installation sur Ubuntu avec un nom de domaine et HTTPS.
Qu’est-ce que Jellyfin et à quoi sert-il ?
Jellyfin est un serveur multimédia gratuit et open source. Le serveur indexe les films, séries, musiques, photos et autres contenus, tandis que les applications clientes les lisent sur un téléphone, un ordinateur ou un téléviseur.
Après l’analyse des dossiers, Jellyfin télécharge les affiches et les descriptions, classe les séries par saisons, mémorise la progression et affiche une section « Continuer à regarder ». Pour une famille, il est possible de créer des profils locaux distincts, de limiter l’accès aux bibliothèques et de configurer un contrôle parental. Quick Connect permet de se connecter sur un téléviseur à l’aide d’un code court, sans saisir un mot de passe long.
Des clients sont disponibles pour Android, iOS, Android TV, Roku, webOS, Tizen, Xbox et les ordinateurs. Jellyfin propose également une interface web et une intégration avec Kodi.
Jellyfin prend aussi en charge la musique, l’IPTV, les tuners TV et l’enregistrement des programmes. SyncPlay synchronise la lecture entre plusieurs utilisateurs, tandis que les plugins ajoutent des sous-titres, de nouvelles sources de métadonnées et des intégrations.
Jellyfin ne recherche ni ne télécharge de films de manière autonome. Il organise et diffuse uniquement le contenu que le propriétaire du serveur possède déjà.
Jellyfin et Plex : les principales différences
Les deux solutions transforment une collection locale en service multimédia, mais reposent sur des modèles différents.
| Paramètre | Jellyfin | Plex |
|---|---|---|
| Code source | Ouvert | Propriétaire |
| Fonctions premium | Le serveur et les clients officiels n’ont pas d’offre payante | Certaines fonctions dépendent de l’abonnement |
| Compte central | Non requis | Utilise l’écosystème du fournisseur |
| Accès à distance | Le propriétaire configure un domaine, un proxy inverse ou un VPN | Propose davantage de mécanismes prêts à l’emploi |
| Contrôle des données | Maximal | Une partie de l’infrastructure est contrôlée par le fournisseur |
Jellyfin est choisi pour son indépendance, sa confidentialité et l’absence d’abonnement. Plex peut être plus pratique si la priorité est une mise en service aussi simple que possible et des applications uniformément abouties sur tous les appareils.
Direct Play ou transcodage : ce qui sollicite le serveur
Les performances de Jellyfin dépendent moins de la taille de la bibliothèque que du mode de lecture.
| Mode | Ce qui se passe | Charge |
|---|---|---|
| Direct Play | Le serveur transmet le fichier d’origine | Faible |
| Direct Stream | Le conteneur ou une piste individuelle est modifié | Faible ou moyenne |
| Transcoding | Le codec, la résolution ou le débit sont modifiés à la volée | Élevée |
Si le téléviseur prend en charge le codec, l’audio et les sous-titres du fichier, le serveur consomme très peu de CPU. Les difficultés apparaissent lorsque le client ne comprend pas le format, que la connexion impose de réduire le débit ou que les sous-titres doivent être incrustés dans l’image. Jellyfin lance alors FFmpeg et transcode la vidéo en temps réel.
La 4K, le HEVC, le HDR et la conversion du HDR vers le SDR sont particulièrement exigeants. Un VPS classique sans carte graphique peut ne pas suivre, même s’il dispose de nombreux cœurs virtuels. Des formats compatibles et le Direct Play permettent donc souvent d’économiser davantage qu’un passage à l’offre supérieure.
Quel serveur faut-il pour Jellyfin ?
La recommandation officielle pour une installation classique est d’environ 8 Go de RAM. Sous Linux sans interface graphique, un petit serveur peut fonctionner avec 4 Go. Un disque rapide est nécessaire pour le système, la base de données, les images, le cache et les fichiers temporaires ; la médiathèque est stockée séparément et occupe généralement la majeure partie de l’espace.
| Scénario | Configuration de départ | Commentaire |
|---|---|---|
| Musique et un flux 1080p en Direct Play | 2 vCPU, 4 Go de RAM | La vitesse du réseau et du disque est plus importante |
| Petite médiathèque familiale | 4 vCPU, 8 Go de RAM | Des formats compatibles sont recommandés |
| Transcodage occasionnel en 1080p | 4 à 8 vCPU performants ou un GPU | La charge dépend du codec |
| Plusieurs flux 4K/HDR | iGPU Intel moderne ou carte graphique | Un VPS classique uniquement doté d’un CPU ne convient pas |
Tenez également compte du trafic : un flux de 20 Mbit/s transfère environ 9 Go de données par heure. Avec une utilisation quotidienne, la consommation atteint rapidement plusieurs centaines de gigaoctets par mois.
Serveur à domicile ou VPS
Un mini-PC ou un NAS à domicile est plus économique pour une collection de plusieurs téraoctets et un transcodage matériel régulier. Vous pouvez installer des disques de grande capacité et choisir un processeur avec Intel Quick Sync, mais l’accès à distance dépend de l’électricité, de la connexion Internet du domicile et de la disponibilité d’une adresse IP publique.
Un VPS possède une adresse publique, une connexion stable et fonctionne en permanence. Il convient bien à la musique, à une petite vidéothèque, au Direct Play et à des utilisateurs situés à différents endroits. Ses limites sont le coût du stockage et l’absence de GPU sur les offres classiques.
Une solution hybride est également possible : les fichiers restent à domicile et le VPS sert de point d’entrée sécurisé. Cette architecture est utile en l’absence d’adresse IPv4 publique, mais la vitesse de lecture reste limitée par le débit montant de la connexion domestique.
Installer Jellyfin sur Ubuntu avec Docker Compose
Dans la configuration ci-dessous, Jellyfin et Caddy fonctionnent sur le même réseau Docker. Le port 8096 n’est pas exposé à Internet ; Caddy reçoit les connexions HTTPS et obtient automatiquement un certificat.
Commencez par faire pointer l’enregistrement A du domaine, par exemple media.example.com, vers l’adresse IP du serveur.
1. Installer Docker et créer les répertoires
sudo apt update
sudo apt install -y docker.io docker-compose-v2
sudo systemctl enable --now docker
sudo mkdir -p /opt/jellyfin/{config,cache,caddy-data,caddy-config}
sudo mkdir -p /srv/media/{movies,series,music}
cd /opt/jellyfin2. Créer /opt/jellyfin/compose.yaml
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
restart: unless-stopped
volumes:
- ./config:/config
- ./cache:/cache
- /srv/media:/media:ro
networks: [media]
caddy:
image: caddy:2
container_name: jellyfin-caddy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
- "443:443/udp"
volumes:
- ./Caddyfile:/etc/caddy/Caddyfile:ro
- ./caddy-data:/data
- ./caddy-config:/config
networks: [media]
networks:
media:L’option :ro monte la médiathèque en lecture seule et protège les fichiers d’origine contre une suppression accidentelle depuis Jellyfin.
3. Créer /opt/jellyfin/Caddyfile
media.example.com {
reverse_proxy jellyfin:8096
}Remplacez le domaine par le vôtre, démarrez les conteneurs et ouvrez les ports nécessaires :
sudo docker compose up -d
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 443/udp
sudo ufw enableSi SSH utilise un autre port, autorisez-le avec une règle distincte avant d’exécuter ufw enable.
Une fois le certificat émis, ouvrez https://media.example.com. Dans les paramètres réseau de Jellyfin, ajoutez le proxy inverse à la liste des proxys de confiance afin que les restrictions d’accès externe fonctionnent correctement.
Configuration initiale de la médiathèque
Dans l’assistant, choisissez la langue, créez un administrateur et ajoutez les bibliothèques :
- films —
/media/movies; - séries —
/media/series; - musique —
/media/music.
Utilisez des noms explicites pour garantir une identification précise :
/media/movies/Titre du film (2024)/Titre du film (2024).mkv
/media/series/Titre de la série (2024)/Season 01/Titre de la série S01E01.mkvCréez un profil standard distinct pour le visionnage et masquez le compte administrateur sur l’écran de connexion. N’accordez aux utilisateurs que les bibliothèques nécessaires et n’autorisez pas la suppression de fichiers sauf en cas de besoin.
Mises à jour et sauvegardes
La configuration de Jellyfin contient les utilisateurs, les paramètres, la base de données et la progression de lecture. Avant une mise à jour, arrêtez le conteneur et sauvegardez le répertoire config :
cd /opt/jellyfin
sudo docker compose stop jellyfin
sudo tar -czf /root/jellyfin-config-$(date +%F).tar.gz config
sudo docker compose start jellyfinTransférez l’archive en dehors du VPS. Les fichiers multimédias doivent être sauvegardés séparément.
Pour effectuer la mise à jour, exécutez :
sudo docker compose pull
sudo docker compose up -dN’exposez pas directement le port 8096. Utilisez HTTPS ou un VPN, installez régulièrement les mises à jour et surveillez l’espace disque disponible.
Jellyfin sur un VPS de tropic.host
Pour une petite médiathèque utilisant principalement le Direct Play, vous pouvez commencer avec un VPS Linux doté de 4 Go de RAM. Pour plusieurs utilisateurs, une grande base de données et des services supplémentaires, 8 Go constituent un choix plus raisonnable.
Lors du choix d’un VPS chez tropic.host, évaluez séparément la capacité de stockage, le trafic mensuel et le besoin de transcodage. Un serveur virtuel constitue un point d’accès permanent pratique avec une adresse IP publique et HTTPS, mais il ne remplace pas un serveur équipé d’un GPU. Si plusieurs flux 4K/HDR avec conversion de format sont nécessaires, mieux vaut utiliser un serveur à domicile doté d’un iGPU Intel, un serveur dédié ou une offre spécialisée avec carte graphique.
Vous pouvez commencer avec une petite collection, vérifier dans le tableau de bord Jellyfin la proportion de sessions en Direct Play, puis augmenter le CPU, la RAM ou le stockage en fonction de la charge réelle.
Conclusion
Jellyfin transforme votre propre collection en service de streaming personnel sans abonnement obligatoire ni compte central. Pour réussir le déploiement, il est important d’estimer à l’avance le stockage, le trafic et la probabilité de transcodage.
Un petit serveur utilisant le Direct Play peut souvent se contenter de 4 à 8 Go de RAM. Une lecture régulière en 4K/HDR nécessite un traitement vidéo matériel. Quelle que soit la configuration, protégez l’accès externe avec HTTPS ou un VPN, et sauvegardez séparément les paramètres et la médiathèque.
FAQ
Jellyfin est-il entièrement gratuit ?
Oui. Le serveur et les clients sont disponibles sans offre premium. Vous ne payez que le matériel, le VPS, les disques, le domaine et le trafic.
Jellyfin contient-il des films et des séries prêts à regarder ?
Non. L’utilisateur ajoute lui-même ses fichiers multimédias.
Peut-on exécuter Jellyfin sur un VPS sans carte graphique ?
Oui, si la majorité des fichiers sont lus en Direct Play. Le transcodage fréquent de contenus 4K et HDR nécessite un serveur doté d’un iGPU adapté ou d’une carte graphique.
De combien de RAM Jellyfin a-t-il besoin ?
Un petit serveur Linux peut fonctionner avec 4 Go de RAM. Pour une médiathèque familiale et plusieurs utilisateurs, il est préférable de viser 8 Go.
Comment accéder à Jellyfin en toute sécurité via Internet ?
Utilisez un domaine et HTTPS avec un proxy inverse, ou un VPN. N’exposez pas directement le port 8096 et créez des comptes utilisateurs distincts avec des droits minimaux.
