GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer Jellyfin Media Server sur Debian 10

Jellyfin est un système de streaming multimédia open source qui vous permet de gérer et de diffuser vos médias. Il s'agit d'une plateforme multiplateforme et d'une alternative à d'autres applications telles que Emby et Plex. Avec Jellyfin, vous pouvez organiser et partager vos fichiers multimédias, émissions de télévision, musique et photos à partir de l'interface Web. Vous pouvez accéder à ces médias diffusés en continu sur votre PC, tablette, téléphone, Roku et téléviseur via Internet. Jellyfin récupère automatiquement les métadonnées de la base de données TheMovieDB, OpenMovie, Rotten Tomatoes et TheTVDB.

Dans cet article, nous vous montrerons comment installer le serveur de streaming multimédia Jellyfin avec Nginx en tant que proxy inverse sur Debian 10.

Prérequis

  • Un serveur exécutant Debian 10.
  • Un nom de domaine valide pointé vers l'adresse IP de votre serveur.
  • Un mot de passe root est configuré sur le serveur.

Mise en route

Tout d'abord, vous devrez mettre à jour vos packages système avec la dernière version. Vous pouvez les mettre à jour avec la commande suivante :

apt-get update -y

Une fois tous les packages mis à jour, installez les autres packages requis avec la commande suivante :

apt-get install apt-transport-https ca-certificates gnupg2 curl git -y

Une fois tous les packages installés, vous pouvez passer à l'étape suivante.

Installer Jellyfin

Par défaut, le package Jellyfin n'est pas inclus dans le référentiel Debian 10. Vous devrez donc ajouter le référentiel Jellyfin à votre APT.

Vous pouvez l'ajouter avec la commande suivante :

echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/debian buster main" | tee /etc/apt/sources.list.d/jellyfin.list

Une fois le dépôt ajouté, ajoutez la clé GPG avec la commande suivante :

wget -O - https://repo.jellyfin.org/jellyfin_team.gpg.key | apt-key add -

Ensuite, mettez à jour le référentiel et installez Jellyfin avec la commande suivante :

apt-get update -y
apt-get install jellyfin -y

Une fois le Jellyfin installé, vous pouvez vérifier l'état de Jellyfin avec la commande suivante :

systemctl status jellyfin

Vous devriez obtenir le résultat suivant :

? jellyfin.service - Jellyfin Media Server
   Loaded: loaded (/lib/systemd/system/jellyfin.service; enabled; vendor preset: enabled)
  Drop-In: /etc/systemd/system/jellyfin.service.d
           ??jellyfin.service.conf
   Active: active (running) since Mon 2021-03-22 08:27:42 UTC; 5min ago
 Main PID: 10192 (jellyfin)
    Tasks: 17 (limit: 4701)
   Memory: 113.9M
   CGroup: /system.slice/jellyfin.service
           ??10192 /usr/bin/jellyfin --webdir=/usr/share/jellyfin/web --restartpath=/usr/lib/jellyfin/restart.sh --ffmpeg=/usr/lib/jellyfin-ffm

Mar 22 08:27:45 debian10 jellyfin[10192]: [08:27:45] [WRN] 127.0.0.1/32: GetBindInterface: Loopback 127.0.0.1 returned.
Mar 22 08:27:45 debian10 jellyfin[10192]: [08:27:45] [INF] Executed all pre-startup entry points in 0:00:00.1545678
Mar 22 08:27:45 debian10 jellyfin[10192]: [08:27:45] [INF] Core startup complete
Mar 22 08:27:46 debian10 jellyfin[10192]: [08:27:46] [INF] Executed all post-startup entry points in 0:00:00.1976994
Mar 22 08:27:46 debian10 jellyfin[10192]: [08:27:46] [INF] Startup complete 0:00:03.6985068
Mar 22 08:27:48 debian10 jellyfin[10192]: [08:27:48] [INF] StartupTrigger fired for task: Update Plugins
Mar 22 08:27:48 debian10 jellyfin[10192]: [08:27:48] [INF] Queuing task PluginUpdateTask
Mar 22 08:27:48 debian10 jellyfin[10192]: [08:27:48] [INF] Executing Update Plugins
Mar 22 08:27:49 debian10 jellyfin[10192]: [08:27:49] [INF] Update Plugins Completed after 0 minute(s) and 0 seconds
Mar 22 08:27:49 debian10 jellyfin[10192]: [08:27:49] [INF] ExecuteQueuedTasks

À ce stade, Jellyfin est démarré et écoute sur le port 8096. Vous pouvez le vérifier avec la commande suivante :

ss -antpl | grep 8096

Sortie :

LISTEN    0         128                0.0.0.0:8096             0.0.0.0:*        users:(("jellyfin",pid=10192,fd=289))                                          

Configurer Nginx en tant que proxy inverse

Ensuite, vous devrez configurer Nginx en tant que proxy inverse pour accéder à Jellyfin sur le port 80.

Tout d'abord, installez le package Nginx avec la commande suivante :

apt-get install nginx -y

Une fois installé, créez un nouveau fichier de configuration Nginx avec la commande suivante :

nano /etc/nginx/conf.d/jellyfin.conf

Ajoutez les lignes suivantes :

server {
      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 le fichier puis vérifiez le Nginx pour toute erreur de syntaxe avec la commande suivante :

nginx -t

Sortie :

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Ensuite, redémarrez le service Nginx pour appliquer les modifications :

systemctl reload nginx

Accéder à Jellyfin

Maintenant, ouvrez votre navigateur Web et accédez à l'interface Web de Jellyfin en utilisant l'URL http://jellyfin.example.com . Vous serez redirigé vers la page suivante :

Sélectionnez votre langue et cliquez sur Suivant bouton. Vous devriez voir la page suivante :

Indiquez votre nom d'utilisateur, votre mot de passe et cliquez sur Suivant bouton. Vous devriez voir la page suivante :

Cliquez sur Suivant bouton. Vous devriez voir la page suivante :

Sélectionnez la langue de vos métadonnées et cliquez sur Suivant bouton. Vous devriez voir la page suivante :

Autorisez l'accès à distance et cliquez sur Suivant bouton. Une fois l'installation terminée, vous devriez voir la page suivante :

Cliquez sur Terminer bouton pour terminer l'installation. Vous devriez voir la page de connexion de Jellyfin :

Indiquez votre nom d'utilisateur, votre mot de passe et cliquez sur Signer Dans bouton. Vous devriez voir le tableau de bord Jellyfin sur la page suivante :

Sécuriser Jellyfin avec Let's Encrypt SSL

Ensuite, vous devrez installer le package client Certbot pour installer la gestion du SSL Let's Encrypt. Tout d'abord, installez le Certbot avec la commande suivante :

apt-get install python3-certbot-nginx -y

Une fois l'installation terminée, exécutez la commande suivante pour installer Let's Encrypt SSL sur votre site Web :

certbot --nginx -d jellyfin.example.com

Il vous sera demandé de fournir une adresse e-mail valide et d'accepter les conditions d'utilisation comme indiqué ci-dessous :

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator nginx, Installer nginx
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(A)gree/(C)ancel: A

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for jellyfin.example.com
Waiting for verification...
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/nginx/conf.d/jellyfin.conf

Ensuite, choisissez de rediriger ou non le trafic HTTP vers HTTPS comme indiqué ci-dessous :

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2

Tapez 2 et appuyez sur Entrée pour terminer l'installation. Vous devriez voir le résultat suivant :

Redirecting all traffic on port 80 to ssl in /etc/nginx/conf.d/jellyfin.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://jellyfin.example.com

You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=jellyfin.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/jellyfin.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/jellyfin.example.com/privkey.pem
   Your cert will expire on 2020-10-30. To obtain a new or tweaked
   version of this certificate in the future, simply run certbot again
   with the "certonly" option. To non-interactively renew *all* of
   your certificates, run "certbot renew"
 - Your account credentials have been saved in your Certbot
   configuration directory at /etc/letsencrypt. You should make a
   secure backup of this folder now. This configuration directory will
   also contain certificates and private keys obtained by Certbot so
   making regular backups of this folder is ideal.
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

 - We were unable to subscribe you the EFF mailing list because your
   e-mail address appears to be invalid. You can try again later by
   visiting https://act.eff.org.

Maintenant, votre site Web est sécurisé avec Let's Encrypt SSL. Vous pouvez y accéder en toute sécurité à l'aide de l'URL https://jellyfin.example.com.

Conclusion

Toutes nos félicitations! vous avez installé avec succès Jellyfin sur le serveur Debian 10. Vous pouvez désormais partager facilement vos médias avec vos amis, votre famille et d'autres utilisateurs.


Debian
  1. Comment installer Plex Media Server sur Debian 9

  2. Comment installer le serveur Minecraft sur Debian 9

  3. Comment installer le serveur Redis sur Debian 11

  4. Comment installer MySQL 8.0 / 5.7 sur Debian 11 / Debian 10

  5. Comment installer ProFTPD sur Debian 8

Comment installer Jellyfin Media Server sur Debian 11 Bullseye

Comment installer Jellyfin Media Server sur Ubuntu 20.04 LTS

Comment installer Plex Media Server sur Debian 9 Stretch

Comment installer Jellyfin Media Server sur Debian 11

Comment installer Plex Media Server sur Debian 11

Comment installer Plex Media Server sur Debian 10