GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Comment installer Jellyfin Media Server sur le serveur/bureau Ubuntu 20.04 LTS

Ce tutoriel vous montrera comment installer le serveur multimédia Jellyfin sur le serveur/bureau Ubuntu 20.04 LTS. 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 Ubuntu 20.04

Jellyfin n'est pas inclus dans le référentiel Ubuntu 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 Ubuntu.

echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/ubuntu focal 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 Ubuntu afin qu'APT puisse vérifier l'intégrité du package 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 Ubuntu 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 Ubuntu 20.04. (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 Ubuntu 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 didacticiel.

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 tel que 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 sur Usenet 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 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.

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 Ubuntu 20.04.

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 à niveau Jellyfin sur Ubuntu 20.04

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

Conseils de dépannage

Erreur lors de l'envoi du message de socket

Si votre serveur Ubuntu 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 à 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]your-interface

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.

Signature invalide

Si vous voyez l'erreur suivante lors de l'exécution de sudo apt update commande,

The following signatures were invalid: EXPKEYSIG 49023CD01DE21A7B Jellyfin Team <[email protected]>

vous devez réimporter la clé publique Jellyfin avec la commande suivante.

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

Ubuntu
  1. Comment installer Plex Media Server sur Ubuntu 20.04

  2. Comment installer Plex Media Server sur Ubuntu 18.04

  3. Comment installer Airsonic Media Server sur Ubuntu 18.04 LTS

  4. Comment installer le serveur de diffusion multimédia Icecast 2 sur Ubuntu 18.04 LTS

  5. Comment installer Jellyfin Media Server avec Nginx sur Ubuntu 20.04

Comment installer FluxBox Desktop Ubuntu 20.04 LTS Server ou PC

Comment installer Subsonic Media Server sur Ubuntu 16.04 LTS

Comment installer Red5 Media Server sur Ubuntu 16.04 LTS

Comment installer Plex Media Server sur Ubuntu 20.04 LTS

Comment installer Ant Media Server sur Ubuntu 20.04 LTS

Comment installer Jellyfin Media Server sur Ubuntu 20.04