GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer Jellyfin Media Server sur Debian 10 Buster

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

  1. Utilisez un client Torrent comme Deluge.
  2. Découvrez comment télécharger depuis Usenet.

Avantages de Usenet

  1. Cela vous offre une meilleure confidentialité, car les autres ne peuvent pas voir ce que vous téléchargez.
  2. Vitesse de téléchargement ultra-rapide.
  3. 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.


Debian
  1. Comment installer Debian 10 (Buster)

  2. Comment installer Docker sur Debian 10 Buster

  3. Comment installer Plex Media Server sur Debian 9

  4. Comment installer le serveur MySQL sur Debian 10 Buster

  5. Comment installer R sur Debian 10 Buster

Comment installer Plex Media Server sur Debian 9 Stretch

Comment installer Plex Media Server sur Debian 10 Buster

Comment installer Jellyfin Media Server sur Debian 11

Comment installer Plex Media Server sur Debian 11

Comment installer un serveur minimal Debian 10 (Buster)

Comment installer Plex Media Server sur Debian 10