GNU/Linux >> Tutoriales Linux >  >> Debian

Cómo instalar el servidor multimedia Jellyfin en Debian 10

Jellyfin es un sistema de transmisión de medios de código abierto que le permite administrar y transmitir sus medios. Es multiplataforma y alternativa a otras aplicaciones como Emby y Plex. Con Jellyfin, puede organizar y compartir sus archivos multimedia, programas de televisión, música y fotos desde la interfaz basada en la web. Puede acceder a esos medios transmitidos en su PC, tableta, teléfono, Roku y TV a través de Internet. Jellyfin obtiene automáticamente metadatos de la base de datos TheMovieDB, OpenMovie, Rotten Tomatoes y TheTVDB.

En esta publicación, le mostraremos cómo instalar el servidor de transmisión de medios Jellyfin con Nginx como proxy inverso en Debian 10.

Requisitos

  • Un servidor que ejecuta Debian 10.
  • Un nombre de dominio válido apuntado con la IP de su servidor.
  • Se configura una contraseña de root en el servidor.

Cómo empezar

Primero, deberá actualizar los paquetes de su sistema con la última versión. Puede actualizarlos con el siguiente comando:

apt-get update -y

Una vez que todos los paquetes estén actualizados, instale otros paquetes requeridos con el siguiente comando:

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

Una vez que todos los paquetes estén instalados, puede continuar con el siguiente paso.

Instalar Jellyfin

De forma predeterminada, el paquete Jellyfin no está incluido en el repositorio de Debian 10. Por lo tanto, deberá agregar el repositorio Jellyfin a su APT.

Puede agregarlo con el siguiente comando:

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

Una vez agregado el repositorio, agregue la clave GPG con el siguiente comando:

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

A continuación, actualice el repositorio e instale Jellyfin con el siguiente comando:

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

Una vez que se haya instalado Jellyfin, puede verificar el estado de Jellyfin con el siguiente comando:

systemctl status jellyfin

Deberías obtener el siguiente resultado:

? 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

En este punto, Jellyfin se inicia y escucha en el puerto 8096. Puede verificarlo con el siguiente comando:

ss -antpl | grep 8096

Salida:

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

Configurar Nginx como proxy inverso

A continuación, deberá configurar Nginx como proxy inverso para acceder a Jellyfin en el puerto 80.

Primero, instale el paquete Nginx con el siguiente comando:

apt-get install nginx -y

Una vez instalado, cree un nuevo archivo de configuración de Nginx con el siguiente comando:

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

Agregue las siguientes líneas:

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";
}

Guarde y cierre el archivo, luego verifique el Nginx para cualquier error de sintaxis con el siguiente comando:

nginx -t

Salida:

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

A continuación, reinicie el servicio Nginx para aplicar los cambios:

systemctl reload nginx

Acceso a Jellyfin

Ahora, abra su navegador web y acceda a la interfaz web de Jellyfin usando la URL http://jellyfin.example.com . Será redirigido a la siguiente página:

Seleccione su idioma y haga clic en Siguiente botón. Debería ver la siguiente página:

Proporcione su nombre de usuario, contraseña y haga clic en Siguiente botón. Debería ver la siguiente página:

Haga clic en Siguiente botón. Debería ver la siguiente página:

Seleccione su idioma de metadatos y haga clic en Siguiente botón. Debería ver la siguiente página:

Permita el acceso remoto y haga clic en Siguiente botón. Una vez finalizada la instalación, debería ver la siguiente página:

Haga clic en Finalizar botón para finalizar la instalación. Debería ver la página de inicio de sesión de Jellyfin:

Proporcione su nombre de usuario, contraseña y haga clic en Firmar En botón. Debería ver el panel de control de Jellyfin en la siguiente página:

Asegure Jellyfin con Let's Encrypt SSL

A continuación, deberá instalar el paquete de cliente de Certbot para instalar y administrar Let's Encrypt SSL. Primero, instale Certbot con el siguiente comando:

apt-get install python3-certbot-nginx -y

Una vez finalizada la instalación, ejecute el siguiente comando para instalar Let's Encrypt SSL en su sitio web:

certbot --nginx -d jellyfin.example.com

Se le pedirá que proporcione una dirección de correo electrónico válida y acepte el término de servicio como se muestra a continuación:

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

A continuación, elija si desea o no redirigir el tráfico HTTP a HTTPS como se muestra a continuación:

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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

Escriba 2 y presione Entrar para finalizar la instalación. Debería ver el siguiente resultado:

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.

Ahora, su sitio web está protegido con Let's Encrypt SSL. Puede acceder a él de forma segura utilizando la URL https://jellyfin.example.com.

Conclusión

¡Felicidades! ha instalado con éxito Jellyfin en el servidor Debian 10. Ahora puede compartir fácilmente sus medios con sus amigos, familiares y otros usuarios.


Debian
  1. Cómo instalar Plex Media Server en Debian 9

  2. Cómo instalar el servidor de Minecraft en Debian 9

  3. Cómo instalar el servidor Redis en Debian 11

  4. Cómo instalar MySQL 8.0/5.7 en Debian 11/Debian 10

  5. Cómo instalar ProFTPD en Debian 8

Cómo instalar Jellyfin Media Server en Debian 11 Bullseye

Cómo instalar Jellyfin Media Server en Ubuntu 20.04 LTS

Cómo instalar Plex Media Server en Debian 9 Stretch

Cómo instalar el servidor multimedia Jellyfin en Debian 11

Cómo instalar Plex Media Server en Debian 11

Cómo instalar Plex Media Server en Debian 10