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
- Use un cliente de torrents como Deluge.
- Aprenda a descargar desde Usenet.
Ventajas de Usenet
- Te brinda mayor privacidad porque otros no pueden ver lo que estás descargando.
- Velocidad de descarga ultrarrápida.
- 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 -