Ce tutoriel vous montrera comment installer le serveur multimédia Jellyfin sur le serveur/bureau Debian 10. Jellyfin est une application open-source gratuite qui vous permet d'organiser vos films, émissions de télévision, musique et photos dans une belle interface et de diffuser ces fichiers multimédias sur votre PC, tablette, téléphone, TV, Roku, etc. sur le réseau ou sur l'Internet. Jellyfin peut être installé sur Linux, MacOS et Windows.
Caractéristiques de Jellyfin
Jellyfin est un fork du serveur multimédia Emby. Il contient un grand nombre des mêmes fonctionnalités que Plex et Emby.
- Contrairement à Plex ou Emby, Jellyfin est 100 % gratuit et open-source. Pas de pubs. Aucune limite de lecture sur les applications mobiles. (Bien que l'application iOS ne puisse pas lire les vidéos en arrière-plan.)
- Regardez la télévision en direct et configurez des enregistrements automatiques pour élargir votre bibliothèque.
- Récupérer automatiquement les illustrations, les métadonnées de TheTVDB, TheMovieDB, The OpenMovie Database et Rotten Tomatoes.
- Prend en charge DLNA.
- Des plug-ins facultatifs peuvent être installés pour fournir des fonctionnalités supplémentaires.
- Prend en charge l'accélération matérielle de l'encodage/décodage vidéo à l'aide de FFMpeg.
- Et bien plus encore.
Installer Jellyfin Media Server sur Debian 10
Jellyfin n'est pas inclus dans le référentiel Debian par défaut, mais il a son propre référentiel. Exécutez la commande suivante pour ajouter le référentiel Jellyfin à votre système Debian 10.
echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/debian buster main" | sudo tee /etc/apt/sources.list.d/jellyfin.list
Ensuite, exécutez la commande suivante pour importer la clé GPG Jeffyfin dans le système Debian afin qu'APT puisse vérifier l'intégrité du paquet lors de l'installation.
wget -O - https://repo.jellyfin.org/jellyfin_team.gpg.key | sudo apt-key add -
Et parce que ce référentiel utilise une connexion HTTPS, nous devons également installer apt-transport-https
et ca-certificates
paquet.
sudo apt install apt-transport-https ca-certificates
Enfin, mettez à jour l'index des packages sur votre système Debian et installez Jellyfin.
sudo apt update sudo apt install jellyfin
Cette commande installera également 3 autres packages en tant que dépendances :
jellyfin-ffmpeg
:pour le transcodage vidéo.jellyfin-server
:le serveur principal.jellyfin-web
:l'interface Web frontale.
Maintenant que le serveur multimédia Jellyfin est installé, nous pouvons vérifier son statut avec :
systemctl status jellyfin
Comme vous pouvez le voir, il fonctionne sur mon système Debian 10. (Appuyez sur q
clé pour reprendre le contrôle du terminal.)
Si le serveur multimédia Jellyfin ne fonctionne pas, vous pouvez le démarrer avec :
sudo systemctl start jellyfin
Configuration initiale du serveur multimédia Jellyfin
L'interface de gestion Web est disponible sur le port 8096. Vous pouvez accéder à l'interface Web de Jellyfin via l'URL suivante.
http://127.0.0.1:8096/web
Si vous avez installé Jellyfin sur un serveur Debian distant, vous devez configurer un proxy inverse avec Nginx ou Apache afin d'accéder à l'interface utilisateur Web, ce qui est expliqué plus loin dans ce tutoriel.
La première étape consiste à choisir votre langue préférée.
Sur l'écran suivant, créez un compte utilisateur.
Vous pouvez maintenant ajouter des bibliothèques. Cliquez sur Add Media Library
bouton.
Sélectionnez un type de contenu (films, musique, émissions de télévision, etc.) et nom d'affichage.
Cliquez ensuite sur Plus (+) bouton pour sélectionner un dossier du contenu.
Notez que le jellyfin
l'utilisateur doit avoir l'autorisation de lecture et d'exécution sur vos répertoires multimédias. Par exemple, mon disque dur externe 2T est monté sous /media/linuxbabe/
, qui appartient à root. Utilisateurs n'appartenant pas au groupe root
ne peut pas y accéder, j'exécute donc la commande suivante pour donner à l'utilisateur jellyfin
autorisation de lecture et d'exécution. (Je ne recommande pas de changer de propriétaire avec chown
ou chgrp
commande. Utilisation de setfacl
commande suffira.)
sudo setfacl -m u:jellyfin:rx /media/linuxbabe/
Vous devrez peut-être également attribuer une autorisation sur des répertoires multimédias individuels comme ci-dessous.
sudo setfacl -m u:jellyfin:rx /media/linuxbabe/directory-name
Il peut être tentant d'ajouter le drapeau récursif (-R
), ce qui donne jellyfin
autorisation de lecture et d'exécution sur chaque fichier et sous-répertoire du lecteur.
sudo setfacl -R -m u:jellyfin:rx /media/linuxbabe/
Si votre disque dur externe n'est utilisé que pour stocker des fichiers multimédias, vous pouvez le faire, mais si vous avez des fichiers sensibles sur le disque dur externe, ne le faites pas.
Une fois que vous avez terminé d'ajouter vos dossiers multimédias, vous pouvez configurer les paramètres de la bibliothèque. Choisissez votre langue, pays, etc.
Cliquez sur Ok
et Next
bouton. Vous pouvez toujours ajouter plus de bibliothèques plus tard. L'étape suivante vous permet de choisir si l'accès à distance sera activé. Je ne recommande pas d'activer la méthode d'accès à distance native, car elle ne fournit pas de cryptage HTTPS, donc décochez les deux cases. Si vous avez besoin d'un accès à distance, veuillez lire comment configurer un proxy inverse plus loin dans cet article.
Cliquez sur Next
et Finish
bouton. Enfin, connectez-vous à votre compte Jellyfin.
Refaire la configuration initiale
Si vous avez fait une erreur dans la configuration initiale, vous pouvez recommencer. Tout d'abord, modifiez le fichier de configuration de Jellyfin.
sudo nano /etc/jellyfin/system.xml
Modifier
<IsStartupWizardCompleted>true</IsStartupWizardCompleted>
à
<IsStartupWizardCompleted>false</IsStartupWizardCompleted>
Enregistrez et fermez le fichier. Redémarrez ensuite Jellyfin.
sudo systemctl restart jellyfin
Visitez maintenant localhost:8096/web
et vous verrez à nouveau l'assistant de configuration.
Où télécharger des films et des émissions de télévision
- Utilisez un client Torrent comme Deluge.
- Découvrez comment télécharger depuis Usenet.
Avantages de Usenet
- Cela vous offre une meilleure confidentialité, car les autres ne peuvent pas voir ce que vous téléchargez.
- Vitesse de téléchargement ultra-rapide.
- Les fichiers sont généralement conservés beaucoup plus longtemps que les fichiers torrent. Par exemple, Newsdemon stocke les fichiers pendant 4430 jours (plus de 12 ans), vous pouvez donc télécharger l'ancien contenu à une vitesse très rapide.
Configuration du proxy inverse
Puisqu'il écoute sur 127.0.0.1:8096
, l'interface Web de Jellyfin n'est disponible que pour les connexions à partir du même ordinateur. Pour pouvoir accéder à l'interface Web de Jellyfin depuis un ordinateur distant, nous pouvons configurer un proxy inverse pour Jellyfin avec Nginx ou Apache.
Nginx
Nginx est un serveur Web et un proxy inverse très populaires. Si vous préférez utiliser Nginx, exécutez la commande suivante pour l'installer.
sudo apt install nginx
Créez ensuite un fichier de bloc de serveur pour Jellyfin.
sudo nano /etc/nginx/conf.d/jellyfin.conf
Ajoutez le contenu suivant à ce fichier. Remplacez jellyfin.example.com
avec votre propre nom de domaine. Vous devez également ajouter un enregistrement DNS A pour ce sous-domaine. Si vous n'avez pas de vrai nom de domaine, je vous recommande d'aller sur NameCheap pour en acheter un. Le prix est bas et ils offrent une protection de la confidentialité whois gratuite à vie.
server { listen 80; listen [::]:80; server_name jellyfin.example.com; access_log /var/log/nginx/jellyfin.access; error_log /var/log/nginx/jellyfin.error; set $jellyfin 127.0.0.1; location / { proxy_pass http://127.0.0.1:8096; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Protocol $scheme; proxy_set_header X-Forwarded-Host $http_host; # Disable buffering when the nginx proxy gets very resource heavy upon streaming proxy_buffering off; } # location block for /web - This is purely for aesthetics so /web/#!/ works instead of having to go to /web/index.html/#!/ location ~ ^/web/$ { # Proxy main Jellyfin traffic proxy_pass http://$jellyfin:8096/web/index.html/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Protocol $scheme; proxy_set_header X-Forwarded-Host $http_host; } location /socket { # Proxy Jellyfin Websockets traffic proxy_pass http://$127.0.0.1:8096; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Protocol $scheme; proxy_set_header X-Forwarded-Host $http_host; } # Security / XSS Mitigation Headers add_header X-Frame-Options "SAMEORIGIN"; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options "nosniff"; }
Enregistrez et fermez ce fichier. Testez ensuite la configuration de Nginx.
sudo nginx -t
Si le test réussit, rechargez Nginx pour que la modification prenne effet.
sudo systemctl reload nginx
Vous pouvez maintenant accéder au serveur multimédia Jellyfin via jellyfin.example.com
.
Apache
Si vous préférez Apache à Nginx, installez le serveur Web Apache à l'aide de la commande suivante.
sudo apt install apache2
Pour utiliser Apache comme proxy inverse, nous devons activer le proxy
modules et le module d'en-tête.
sudo a2enmod proxy proxy_http headers proxy_wstunnel
Créez ensuite un fichier d'hôte virtuel pour Jellyfin.
sudo nano /etc/apache2/sites-available/jellyfin.conf
Mettez les configurations suivantes dans le fichier. Remplacez jellyfin.example.com
avec votre vrai nom de domaine. N'oubliez pas de créer un enregistrement DNS A pour ce sous-domaine. Si vous n'avez pas de vrai nom de domaine, je vous recommande d'aller sur NameCheap pour en acheter un. Le prix est bas et ils offrent une protection de la confidentialité whois gratuite à vie.
<VirtualHost *:80> ServerName jellyfin.example.com ErrorDocument 404 /404.html #HTTP proxy ProxyPass / http://localhost:8096/ ProxyPassReverse / http://localhost:8096/ #Websocket proxy SSLProxyEngine on <Location /:/websockets/notifications> ProxyPass wss://localhost:8096/:/websockets/notifications ProxyPassReverse wss://localhost:8096/:/websockets/notifications </Location> Header always unset X-Frame-Options </VirtualHost>
Enregistrez et fermez le fichier. Activez ensuite cet hôte virtuel.
sudo a2ensite jellyfin.conf
Redémarrez Apache
sudo systemctl restart apache2
Vous pouvez maintenant accéder au serveur multimédia Jellyfin en utilisant le nom de domaine jellyfin.example.com
.
Activer HTTPS
Pour chiffrer le trafic HTTP lorsque vous visitez le serveur Jellyfin de l'extérieur, nous pouvons activer HTTPS en installant un certificat TLS gratuit émis par Let's Encrypt. Exécutez la commande suivante pour installer le client Let's Encrypt (certbot) sur Debian 10.
sudo apt install certbot
Si vous utilisez Nginx, vous devez également installer le plugin Certbot Nginx.
sudo apt install python3-certbot-nginx
Ensuite, exécutez la commande suivante pour obtenir et installer le certificat TLS.
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d jellyfin.example.com
Si vous utilisez Apache, vous devez installer le plugin Certbot Apache.
sudo apt install python3-certbot-apache
Ensuite, exécutez la commande suivante pour obtenir et installer le certificat TLS.
sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d jellyfin.example.com
Où :
--nginx
:Utilisez le plug-in nginx.--apache
:Utilisez le plug-in Apache.--agree-tos
:acceptez les conditions d'utilisation.--redirect
:Forcer HTTPS par redirection 301.--hsts
:Ajoutez l'en-tête Strict-Transport-Security à chaque réponse HTTP. Forcer le navigateur à toujours utiliser TLS pour le domaine. Protège contre le SSL/TLS Stripping.--staple-ocsp
:active l'agrafage OCSP. Une réponse OCSP valide est agrafée au certificat que le serveur propose pendant TLS.
Le certificat devrait maintenant être obtenu et installé automatiquement.
Et vous pouvez accéder à l'interface Web de Jellyfin via HTTPS :https://jellyfin.example.com
.
Comment mettre à jour Jellyfin sur Debian 10
Lorsqu'une nouvelle version du serveur multimédia Jellyfin sort, vous pouvez la mettre à niveau en exécutant les commandes suivantes.
sudo apt update sudo apt upgrade
Redémarrez ensuite Jellyfin.
sudo systemctl restart jellyfin
Dépannage
Si votre serveur Debian exécute WireGuard VPN, vous pouvez voir l'erreur suivante dans le journal Jellyfin (sudo journalctl -eu jellyfin
).
[ERR] Error sending socket message from 10.0.0.102 to 239.255.255.250:1900 System.Net.Sockets.SocketException (0xFFFFFFFF): Bad value for ai_flags
Cette erreur signifie que le message ne peut pas être envoyé de votre interface WireGuard au 239.255.255.250, qui est l'adresse de multidiffusion SSDP (Simple Service Discovery Protocol). Cela est dû au fait que votre interface WireGuard n'est pas autorisée à atteindre l'adresse IP.
Pour résoudre ce problème, modifiez le fichier de configuration de votre interface WireGuard.
sudo nano /etc/wireguard/your-interface.conf
Trouvez les AllowedIPs
paramètre. Le mien est comme ci-dessous.
AllowedIPs = 10.0.0.0/8
Comme vous pouvez le voir, le client VPN est autorisé à se connecter au réseau 10.0.0.0/8 uniquement. Ajoutez maintenant le 239.255.255.250
adresse.
AllowedIPs = 10.0.0.0/8, 239.255.255.250
Enregistrez et fermez le fichier. Redémarrez WireGuard.
sudo systemctl restart [email protected]
Redémarrez Jellyfin.
sudo systemctl restart jellyfin
Vérifiez le journal Jellyfin (sudo journalctl -eu jellyfin
) de nouveau. L'erreur ci-dessus devrait avoir disparu.