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 a través de La Internet. Jellyfin server se puede instalar en Linux, MacOS y Windows.
Características de Jellyfin
Jellyfin es una bifurcación del servidor de medios Emby. Incluye muchas de las mismas características 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).
- Mire TV en vivo y configure grabaciones automáticas para expandir su biblioteca.
- Obtenga automáticamente ilustraciones, metadatos de TheTVDB, TheMovieDB, The OpenMovie Database y Rotten Tomatoes.
- Soporta DLNA.
- Se pueden instalar complementos opcionales para proporcionar funciones adicionales.
- Admite la aceleración por hardware de la codificación / decodificación de video mediante FFMpeg.
- Y más.
Instale Jellyfin Media Server 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 de 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 Jeffyfin GPG 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
empaquetar.
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 back-end.jellyfin-web
: la interfaz web de front-end.
Ahora que el servidor de medios Jellyfin está instalado, podemos comprobar su estado con:
systemctl status jellyfin
Como puede ver, se está ejecutando en mi sistema Ubuntu 20.04. (Presione la q
tecla para recuperar el control del 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://localhost: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. Haga clic en el Add Media Library
botón.
Seleccione un content type (películas, música, programas de televisión, etc.) y un nombre para mostrar.
Luego haga clic en el botón de signo más (+) para seleccionar una carpeta del contenido.
Tenga en cuenta que el jellyfin
usuario debe tener permiso de lectura y ejecución en sus directorios multimedia. Por ejemplo, mi disco duro externo 2T está montado debajo /media/togangel/
, que es propiedad de root. Los usuarios que no están en el grupo root
no pueden acceder a él, por lo que ejecuto el siguiente comando para otorgar al usuario jellyfin
permiso de lectura y ejecución. (No recomiendo cambiar la propiedad con el comando chown
o chgrp
. Usar el setfacl
comando será suficiente).
sudo setfacl -m u:jellyfin:rx /media/togangel/
También es posible que deba asignar permisos en directorios de medios individuales, como se muestra a continuación.
sudo setfacl -m u:jellyfin:rx /media/togangel/directory-name
Puede ser tentador agregar el indicador recursivo ( -R
), que otorga jellyfin
permiso de lectura y ejecución en cada archivo y subdirectorio de la unidad.
sudo setfacl -R -m u:jellyfin:rx /media/togangel/
Si su disco duro externo solo se usa para almacenar archivos multimedia, entonces 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 la biblioteca. Elija su idioma, país, etc.
Haga clic en el botón Ok
y Next
. 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 de verificación. Si necesita acceso remoto, lea cómo configurar el proxy inverso más adelante en este artículo.
Haga clic en el botón Next
y Finish
. 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 reinicia Jellyfin.
sudo systemctl restart jellyfin
Ahora visite localhost:8096/web/
y verá el asistente de configuración nuevamente.
Configuración de proxy inverso
Dado que sigue escuchando 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
Luego crea un archivo de bloque de servidor para Jellyfin.
sudo nano /etc/nginx/conf.d/jellyfin.conf
Agregue el siguiente contenido a este archivo. Reemplácelo 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 que vaya a NameCheap para comprar uno. El precio es bajo y brindan protección de privacidad de 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;
# Desactive el almacenamiento en búfer cuando el proxy nginx tenga muchos recursos durante la transmisión
proxy_buffering off;
}
# bloque de ubicación para / web: esto es puramente estético, por lo que / web / #! / funciona en lugar de tener que ir a /web/index.html/#!/
location ~ ^/web/$ {
# Tráfico principal de Jellyfin proxy
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 {
# Tráfico de proxy Jellyfin Websockets
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;
}
# Cabeceras de mitigación de seguridad / XSS
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 tiene éxito, 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, necesitamos habilitar los proxy
módulos y el módulo de encabezado.
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. Reemplácelo 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 que vaya a NameCheap para comprar uno. El precio es bajo y brindan protección de privacidad de 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 host virtual.
sudo a2ensite jellyfin.conf
Reiniciar Apache
sudo systemctl restart apache2
Ahora puede acceder al servidor de medios Jellyfin utilizando el nombre de dominio jellyfin.example.com
.
Cómo actualizar Jellyfin en Ubuntu 20.04
Cuando salga una nueva versión del servidor de medios Jellyfin, puede actualizarla ejecutando los siguientes comandos.
sudo apt update
sudo apt upgrade
Luego reinicia Jellyfin.
sudo systemctl restart jellyfin
Consejos para solucionar problemas
Error al enviar el 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 su archivo de configuración de interfaz WireGuard.
sudo nano /etc/wireguard/your-interface.conf
Encuentra el AllowedIPs
parámetro. El mío es como 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 agregue la 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 wg-quick@your-interface
Reinicie Jellyfin.
sudo systemctl restart jellyfin
Vuelva a comprobar el registro de Jellyfin ( sudo journalctl -eu jellyfin
). El error anterior debería desaparecer.
Firma inválida
Si ve el siguiente error al ejecutar el sudo apt update
comando,
The following signatures were invalid: EXPKEYSIG 49023CD01DE21A7B Jellyfin Team <team@jellyfin.org>
debe 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 -
Terminando
Espero que este tutorial te haya ayudado a instalar el servidor de medios Jellyfin en Ubuntu 20.04.