Déployez Jellyfin en un clic
Un serveur multimédia qui diffuse vos films, séries et musique sur tous vos appareils
Une alternative auto-hébergée à Plex et Emby.
Qu’est-ce que Jellyfin ?
Jellyfin est un serveur multimédia gratuit et open source, que l’on fait tourner à la place de Plex ou d’Emby. Il range les films, séries et musiques que vous possédez dans des médiathèques, avec affiches, résumés et distribution tirés de métadonnées en ligne, et les diffuse vers un navigateur, des téléphones, des tablettes et des téléviseurs. Des applications officielles existent pour Android, iOS, Android TV et Fire TV, Roku, les téléviseurs LG et Samsung, Xbox et Kodi, et Jellyfin Media Player tourne sur ordinateur. Chaque personne a son propre compte, avec sa progression de lecture et son contrôle parental.
Vous auto-hébergez Jellyfin pour regarder vos propres médias de n’importe où, sans compte chez une entreprise ni abonnement : il n’a ni version premium, ni pistage, ni serveurs centraux. Ce template le configure avec l’administrateur créé à partir des champs et trois médiathèques, Movies, Shows et Music, sur les dossiers d’un volume de médias. Le revers, c’est le transcodage. Quand un appareil ne peut pas lire un fichier tel quel, Jellyfin le convertit à la volée, ici sur le CPU, ce qui est gourmand : les fichiers que vos appareils lisent directement, comme la vidéo H.264 en MP4, sont donc les plus légers.
Hébergement de Jellyfin sur Pethost
- Vous vous connectez à Pethost avec une clé d’accès, GitHub ou Google. Pas encore de machine ? Vous choisissez une offre, et le lien attend qu’elle soit prête.
- Nouveau projet s’ouvre sur Jellyfin. Vous remplissez ce qu’il demande et cliquez sur Créer le projet : Nom d’utilisateur, Mot de passe administrateur.
- En une minute ou deux, Jellyfin tourne à sa propre adresse en HTTPS. Ses secrets sont créés au hasard, et ses données sont dans la sauvegarde nocturne.
- C’est un projet comme les autres : vous ou votre agent pouvez le modifier, revenir à une version précédente ou le restaurer.
Questions sur Jellyfin
Jellyfin est-il vraiment gratuit ?
Oui. Jellyfin est un logiciel libre sous licence GNU GPL : son serveur et ses applications officielles ne coûtent rien, sans version premium ni fonctions payantes. Il est développé par des bénévoles.
Jellyfin ou Plex : quelle différence ?
Les deux diffusent vos propres médias vers vos appareils. Le serveur de Plex n’est pas open source, ses comptes passent par plex.tv et, depuis avril 2025, regarder vos médias hors de chez vous demande un Plex Pass ou un Remote Watch Pass. Jellyfin est open source, ne demande aucun compte extérieur et ne fait rien payer.
Quels appareils sont compatibles avec Jellyfin ?
Tout navigateur récent, ainsi que les applications officielles pour Android, iOS, Android TV et Fire TV, Roku, LG webOS, Samsung Tizen et Xbox. Jellyfin Media Player tourne sous Windows, macOS et Linux, et l’extension JellyCon intègre Jellyfin à Kodi.
Comment nommer mes films et séries pour Jellyfin ?
Donnez à chaque film un dossier portant son titre et son année, comme Big Buck Bunny (2008), avec à l’intérieur la vidéo sous le même nom. Une série a son propre dossier, avec Season 01, Season 02 et ainsi de suite à l’intérieur, et des épisodes nommés comme Show Name S01E01.mkv. Jellyfin trouve alors les bonnes affiches et les bons résumés.
Jellyfin a-t-il besoin d’un GPU ?
Non. Un GPU ne fait qu’accélérer le transcodage, la conversion dont un appareil a besoin quand il ne peut pas lire un fichier tel quel ; sans GPU, Jellyfin transcode sur le CPU. La vidéo HDR est le cas difficile : selon la documentation de Jellyfin, aucun CPU grand public récent n’en fait le mappage tonal en temps réel. Les fichiers que vos appareils lisent tels quels ne demandent aucun transcodage.
De combien de mémoire et de disque Jellyfin a-t-il besoin ?
Jellyfin prend environ 250 MB de mémoire au repos, et le disque, c’est votre médiathèque ; le transcodage d’une vidéo tourne sur le CPU et il est gourmand. Sur Pethost, l’offre Starter lui suffit, avec de la place pour d’autres applications à côté.
Le fichier Docker Compose de Jellyfin
Le template, c’est ce compose.yaml et les variables écrites dans le .env du projet à sa création. Pethost exécute le fichier tel qu’il est écrit.
Conteneurs : jellyfin (jellyfin/jellyfin:12).
Volumes, dans la sauvegarde nocturne : config, cache, media.
services:
jellyfin:
image: jellyfin/jellyfin:12
restart: unless-stopped
environment:
ADMIN_USERNAME: ${ADMIN_USERNAME}
ADMIN_PASSWORD: ${ADMIN_PASSWORD}
# A new server's startup wizard is open to whoever comes first. So until the wizard is done,
# Jellyfin runs on port 8097, which nobody reaches: there it is given the administrator from
# the fields and a library for each folder of /media, and only then answers on 8096.
entrypoint: ["/bin/sh", "-c"]
command:
- |
set -e
config=/config/config
if ! grep -qs '<IsStartupWizardCompleted>true<' "$$config/system.xml"; then
mkdir -p "$$config" /media/movies /media/shows /media/music
if [ -f "$$config/network.xml" ]; then
sed -i 's|<InternalHttpPort>[0-9]*<|<InternalHttpPort>8097<|' "$$config/network.xml"
else
printf '<?xml version="1.0" encoding="utf-8"?>\n<NetworkConfiguration>\n <InternalHttpPort>8097</InternalHttpPort>\n</NetworkConfiguration>\n' > "$$config/network.xml"
fi
/jellyfin/jellyfin &
setup=$$!
api() { curl -fsS -H 'Content-Type: application/json' "$$@"; }
# 401: an administrator with a password exists already, from a first start cut short,
# and Jellyfin has marked its wizard done by itself.
until wizard=$$(curl -sS -o /dev/null -w '%{http_code}' http://127.0.0.1:8097/Startup/Configuration) &&
{ [ "$$wizard" = 200 ] || [ "$$wizard" = 401 ]; }; do sleep 2; done
if [ "$$wizard" = 200 ]; then
api -d '{"ServerName":"Jellyfin","UICulture":"en-US","MetadataCountryCode":"US","PreferredMetadataLanguage":"en"}' http://127.0.0.1:8097/Startup/Configuration
library() {
api http://127.0.0.1:8097/Library/VirtualFolders | grep -q "\"Name\":\"$$1\"" ||
api -d '{"LibraryOptions":{"EnableRealtimeMonitor":true}}' "http://127.0.0.1:8097/Library/VirtualFolders?name=$$1&collectionType=$$2&paths=/media/$$3"
}
library Movies movies movies
library Shows tvshows shows
library Music music music
api -o /dev/null http://127.0.0.1:8097/Startup/User
json() { printf '%s' "$$1" | sed 's/\\/\\\\/g; s/"/\\"/g'; }
api -d "{\"Name\":\"$$(json "$$ADMIN_USERNAME")\",\"Password\":\"$$(json "$$ADMIN_PASSWORD")\"}" http://127.0.0.1:8097/Startup/User
api -d '{"EnableRemoteAccess":true,"EnableAutomaticPortMapping":false}' http://127.0.0.1:8097/Startup/RemoteAccess
api -X POST http://127.0.0.1:8097/Startup/Complete
fi
kill $$setup
wait $$setup || true
sed -i 's|<InternalHttpPort>8097<|<InternalHttpPort>8096<|' "$$config/network.xml"
fi
exec /jellyfin/jellyfin
volumes:
- config:/config
- cache:/cache
# Writable, so that films, shows and music can be copied in over SFTP.
- media:/media
volumes:
config:
cache:
media:
Aussi dans Médias
- OwncastVidéo en direct et chat sur votre propre page
- NavidromeUn serveur de musique qui diffuse votre propre collection
- RomMUne bibliothèque et un lecteur dans le navigateur pour vos jeux rétro
- KomgaUn serveur et une liseuse web pour vos BD, mangas et livres numériques
- LycheeUne galerie pour téléverser, classer et partager vos photos
- AudiobookshelfVotre propre serveur de livres audio et de podcasts : écoutez dans le navigateur ou les applis, avec la progression gardée d’un appareil à l’autre