GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar Jellyfin Media Server en Ubuntu 20.04 LTS Server/Desktop

Este tutorial le mostrará cómo instalar el servidor de medios Jellyfin en el servidor/escritorio Ubuntu 20.04 LTS. Jellyfin es una aplicación gratuita de código abierto que le permite organizar sus películas, programas de TV, música y fotos en una hermosa interfaz y transmitir esos archivos multimedia en su PC, tableta, teléfono, TV, Roku, etc. en la red o más. La Internet. Jellyfin se puede instalar en Linux, MacOS y Windows.

Funciones Jellyfin

Jellyfin es una bifurcación del servidor de medios Emby. Contiene muchas de las mismas funciones que Plex y Emby.

  • A diferencia de Plex o Emby, Jellyfin es 100 % gratuito y de código abierto. Sin anuncios. Sin límite de reproducción en aplicaciones móviles. (Aunque la aplicación de iOS no puede reproducir videos en segundo plano).
  • Mira TV en vivo y configura grabaciones automáticas para expandir tu biblioteca.
  • Obtenga ilustraciones y metadatos automáticamente de TheTVDB, TheMovieDB, The OpenMovie Database y Rotten Tomatoes.
  • Admite DLNA.
  • Se pueden instalar complementos opcionales para proporcionar funciones adicionales.
  • Admite aceleración de hardware de codificación/descodificación de video mediante FFMpeg.
  • Y más.

Instalar servidor multimedia Jellyfin en Ubuntu 20.04

Jellyfin no está incluido en el repositorio predeterminado de Ubuntu, pero tiene su propio repositorio. Ejecute el siguiente comando para agregar el repositorio Jellyfin a su sistema Ubuntu.

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

A continuación, ejecute el siguiente comando para importar la clave GPG de Jeffyfin al sistema Ubuntu para que APT pueda verificar la integridad del paquete durante la instalación.

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

Y debido a que este repositorio usa una conexión HTTPS, también necesitamos instalar apt-transport-https y ca-certificates paquete.

sudo apt install apt-transport-https ca-certificates

Finalmente, actualice el índice de paquetes en su sistema Ubuntu e instale Jellyfin.

sudo apt update

sudo apt install jellyfin

Este comando también instalará otros 3 paquetes como dependencias:

  • jellyfin-ffmpeg :para la transcodificación de video.
  • jellyfin-server :el servidor de back-end.
  • jellyfin-web :la interfaz web frontal.

Ahora que el servidor de medios Jellyfin está instalado, podemos verificar su estado con:

systemctl status jellyfin

Como puede ver, se está ejecutando en mi sistema Ubuntu 20.04. (Presione q clave para recuperar el control de la terminal.)

Si el servidor de medios Jellyfin no se está ejecutando, puede iniciarlo con:

sudo systemctl start jellyfin

Configuración inicial del servidor multimedia Jellyfin

La interfaz de administración basada en web está disponible en el puerto 8096. Puede acceder a la interfaz web de Jellyfin a través de la siguiente URL.

http://127.0.0.1:8096/web

Si instaló Jellyfin en un servidor Ubuntu remoto, debe configurar un proxy inverso con Nginx o Apache para acceder a la interfaz de usuario web, que se explica más adelante en este tutorial.

El primer paso es elegir su idioma preferido.

En la siguiente pantalla, cree una cuenta de usuario.

Ahora puede agregar bibliotecas. Haz clic en Add Media Library botón.

Seleccione un tipo de contenido (películas, música, programas de televisión, etc.) y nombre para mostrar.

Luego haga clic en Más (+) botón para seleccionar una carpeta del contenido.

Tenga en cuenta que el jellyfin el usuario necesita tener permiso de lectura y ejecución en sus directorios de medios. Por ejemplo, mi disco duro externo 2T está instalado en /media/linuxbabe/ , que es propiedad de root. Usuarios que no están en el grupo root no puedo acceder a él, así que ejecuto el siguiente comando para darle al usuario jellyfin permiso de lectura y ejecución. (No recomiendo cambiar la propiedad con chown o chgrp dominio. Usando el setfacl el comando será suficiente.)

sudo setfacl -m u:jellyfin:rx /media/linuxbabe/

Es posible que también deba asignar permisos en directorios de medios individuales, como se muestra a continuación.

sudo setfacl -m u:jellyfin:rx /media/linuxbabe/directory-name

Puede ser tentador agregar el indicador recursivo (-R ), que da jellyfin permiso de lectura y ejecución en cada archivo y subdirectorio de la unidad.

sudo setfacl -R -m u:jellyfin:rx /media/linuxbabe/

Si su disco duro externo solo se usa para almacenar archivos multimedia, puede hacerlo, pero si tiene archivos confidenciales en el disco duro externo, no lo haga.

Una vez que termine de agregar sus carpetas multimedia, puede configurar los ajustes de la biblioteca. Elige tu idioma, país, etc.

Haz clic en Ok y Next botón. Siempre puede agregar más bibliotecas más tarde. El siguiente paso le permite elegir si se habilitará el acceso remoto. No recomiendo habilitar el método de acceso remoto nativo, porque no proporciona cifrado HTTPS, así que desmarque ambas casillas. Si necesita acceso remoto, lea cómo configurar el proxy inverso más adelante en este artículo.

Haga clic en Next y Finish botón. Finalmente, inicie sesión en su cuenta de Jellyfin.

Rehacer la configuración inicial

Si cometió un error en la configuración inicial, puede comenzar de nuevo. Primero, edite el archivo de configuración de Jellyfin.

sudo nano /etc/jellyfin/system.xml

Cambiar

<IsStartupWizardCompleted>true</IsStartupWizardCompleted>

a

<IsStartupWizardCompleted>false</IsStartupWizardCompleted>

Guarde y cierre el archivo. Luego reinicie Jellyfin.

sudo systemctl restart jellyfin

Ahora visita localhost:8096/web y volverá a ver el asistente de configuración.

Dónde descargar películas y programas de televisión

  1. Use un cliente de torrents como Deluge.
  2. Aprenda a descargar desde Usenet.

Ventajas de Usenet

  1. Te brinda mayor privacidad porque otros no pueden ver lo que estás descargando.
  2. Velocidad de descarga ultrarrápida.
  3. Los archivos de Usenet suelen conservarse durante mucho más tiempo que los archivos torrent. Por ejemplo, Newsdemon almacena archivos durante 4430 días (más de 12 años), por lo que puede descargar contenido antiguo a una velocidad muy rápida.

Configuración del proxy inverso

Ya que escucha en 127.0.0.1:8096 , la interfaz web de Jellyfin solo está disponible para conexiones desde la misma computadora. Para poder acceder a la interfaz web de Jellyfin desde una computadora remota, podemos configurar un proxy inverso para Jellyfin con Nginx o Apache.

Nginx

Nginx es un servidor web y proxy inverso muy popular. Si prefiere usar Nginx, ejecute el siguiente comando para instalarlo.

sudo apt install nginx

A continuación, cree un archivo de bloqueo del servidor para Jellyfin.

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

Agregue el siguiente contenido a este archivo. Reemplace jellyfin.example.com con su propio nombre de dominio. También debe crear un registro DNS A para este subdominio. Si no tiene un nombre de dominio real, le recomiendo ir a NameCheap para comprar uno. El precio es bajo y brindan protección de privacidad whois gratis de por vida.

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

}

Guarde y cierre este archivo. Luego pruebe la configuración de Nginx.

sudo nginx -t

Si la prueba es exitosa, vuelva a cargar Nginx para que el cambio surta efecto.

sudo systemctl reload nginx

Ahora puede acceder al servidor de medios Jellyfin a través de jellyfin.example.com .

Apache

Si prefiere Apache sobre Nginx, instale el servidor web Apache usando el siguiente comando.

sudo apt install apache2

Para usar Apache como proxy inverso, debemos habilitar el proxy módulos y el módulo de cabecera.

sudo a2enmod proxy proxy_http headers proxy_wstunnel

Luego cree un archivo de host virtual para Jellyfin.

sudo nano /etc/apache2/sites-available/jellyfin.conf

Coloque las siguientes configuraciones en el archivo. Reemplace jellyfin.example.com con su nombre de dominio real. No olvide crear un registro DNS A para este subdominio. Si no tiene un nombre de dominio real, le recomiendo ir a NameCheap para comprar uno. El precio es bajo y brindan protección de privacidad whois gratis de por vida.

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

Guarde y cierre el archivo. Luego habilite este servidor virtual.

sudo a2ensite jellyfin.conf

Reiniciar Apache

sudo systemctl restart apache2

Ahora puede acceder al servidor de medios Jellyfin usando el nombre de dominio jellyfin.example.com .

Habilitar HTTPS

Para cifrar el tráfico HTTP cuando visita el servidor Jellyfin desde el exterior, podemos habilitar HTTPS instalando un certificado TLS gratuito emitido por Let's Encrypt. Ejecute el siguiente comando para instalar el cliente Let's Encrypt (certbot) en Ubuntu 20.04.

sudo apt install certbot

Si usa Nginx, también necesita instalar el complemento Certbot Nginx.

sudo apt install python3-certbot-nginx

A continuación, ejecute el siguiente comando para obtener e instalar el certificado TLS.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d jellyfin.example.com

Si usa Apache, entonces necesita instalar el complemento Certbot Apache.

sudo apt install python3-certbot-apache

A continuación, ejecute el siguiente comando para obtener e instalar el certificado TLS.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d jellyfin.example.com

donde:

  • --nginx :use el complemento nginx.
  • --apache :Utilice el complemento de Apache.
  • --agree-tos :Acepto los términos del servicio.
  • --redirect :Forzar HTTPS por redirección 301.
  • --hsts :agregue el encabezado Strict-Transport-Security a cada respuesta HTTP. Obligar al navegador a usar siempre TLS para el dominio. Protege contra la eliminación de SSL/TLS.
  • --staple-ocsp :activa el grapado OCSP. Se grapa una respuesta OCSP válida al certificado que ofrece el servidor durante TLS.

Ahora se debe obtener el certificado e instalarlo automáticamente.

Y puede acceder a la interfaz web de Jellyfin a través de HTTPS:https://jellyfin.example.com .

Cómo actualizar Jellyfin en Ubuntu 20.04

Cuando sale una nueva versión del servidor de medios Jellyfin, puede actualizarlo ejecutando los siguientes comandos.

sudo apt update

sudo apt upgrade

Luego reinicie Jellyfin.

sudo systemctl restart jellyfin

Consejos para solucionar problemas

Error al enviar mensaje de socket

Si su servidor Ubuntu ejecuta WireGuard VPN, es posible que vea el siguiente error en el registro de 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

Este error significa que el mensaje no se puede enviar desde su interfaz WireGuard a 239.255.255.250, que es la dirección de multidifusión SSDP (Simple Service Discovery Protocol). Esto se debe a que su interfaz WireGuard no puede acceder a la dirección IP.

Para resolver este problema, edite el archivo de configuración de su interfaz WireGuard.

sudo nano /etc/wireguard/your-interface.conf

Encuentra las AllowedIPs parámetro. El mío es como el de abajo.

AllowedIPs = 10.0.0.0/8

Como puede ver, el cliente VPN solo puede conectarse a la red 10.0.0.0/8. Ahora agrega el 239.255.255.250 dirección.

AllowedIPs = 10.0.0.0/8, 239.255.255.250

Guarde y cierre el archivo. Reinicie WireGuard.

sudo systemctl restart [email protected]your-interface

Reinicie Jellyfin.

sudo systemctl restart jellyfin

Compruebe el registro de Jellyfin (sudo journalctl -eu jellyfin ) otra vez. El error anterior debería desaparecer.

Firma no válida

Si ve el siguiente error al ejecutar sudo apt update mando,

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

necesita volver a importar la clave pública de Jellyfin con el siguiente comando.

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

Ubuntu
  1. Cómo instalar Plex Media Server en Ubuntu 20.04

  2. Cómo instalar Plex Media Server en Ubuntu 18.04

  3. Cómo instalar Airsonic Media Server en Ubuntu 18.04 LTS

  4. Cómo instalar el servidor de transmisión de medios Icecast 2 en Ubuntu 18.04 LTS

  5. Cómo instalar Jellyfin Media Server con Nginx en Ubuntu 20.04

Cómo instalar FluxBox Desktop Ubuntu 20.04 LTS Servidor o PC

Cómo instalar Subsonic Media Server en Ubuntu 16.04 LTS

Cómo instalar Red5 Media Server en Ubuntu 16.04 LTS

Cómo instalar Plex Media Server en Ubuntu 20.04 LTS

Cómo instalar Ant Media Server en Ubuntu 20.04 LTS

Cómo instalar Jellyfin Media Server en Ubuntu 20.04