Cómo instalar el servidor multimedia Jellyfin en Ubuntu 22.04
Jellyfin es un software de servidor multimedia gratuito y de código abierto, que permite a los usuarios alojar y gestionar bibliotecas multimedia personales, transmitir contenidos entre dispositivos y proporcionar acceso a otros. Es una alternativa a los servidores multimedia propietarios, que ofrece una amplia personalización y control de la privacidad. Es una alternativa a los servidores de archivos multimedia propietarios como Emby y Plex.
En esta guía, te mostraremos cómo instalar el servidor multimedia Jellyfin en Ubuntu 22.04. Instalarás Jellyfin con Apache como proxy inverso y asegurarás Jellyfin con certificados SSL/TLS de Letsencrypt.
Requisitos previos
Antes de empezar, asegúrate de que tienes lo siguiente:
- Un servidor Ubuntu 22.04.
- Un usuario no root con privilegios sudo.
- Un nombre de dominio apuntando a una dirección IP del servidor.
Añadir el repositorio Jellyfin
Para empezar, ejecuta el siguiente comando para instalar dependencias como software-properties-common, apt-transport-https, ca-certificates, gnupg y curl en tu sistema Ubuntu.
sudo apt install software-properties-common apt-transport-https ca-certificates gnupg curl -y
A continuación, ejecuta el siguiente comando para habilitar el repositorio «universo» en tu máquina Ubuntu.
sudo add-apt-repository universe
Ahora ejecuta el siguiente comando para crear un nuevo directorio /etc/apt/keyrings y descarga en él la clave GPG para el repositorio Jellyfin.
sudo mkdir -p /etc/apt/keyrings curl -fsSL https://repo.jellyfin.org/jellyfin_team.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/jellyfin.gpg
A continuación, ejecuta el siguiente comando para añadir el repositorio Jellyfin a tu máquina Ubuntu.
cat <<EOF | sudo tee /etc/apt/sources.list.d/jellyfin.sources Types: deb URIs: https://repo.jellyfin.org/$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release ) Suites: $( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release ) Components: main Architectures: $( dpkg --print-architecture ) Signed-By: /etc/apt/keyrings/jellyfin.gpg EOF
Por último, actualiza y refresca el índice de paquetes en tu sistema Ubuntu utilizando el siguiente comando. Esto recuperará la información de los nuevos paquetes, incluidos los del repositorio Jellyfin.
sudo apt update
Instalación del servidor Jellyfin
Tras añadir el repositorio de Jellyfin, ya puedes iniciar la instalación de Jellyfin en tu servidor Ubuntu.
Ejecuta el siguiente comando apt para instalar el paquete jellyfin. Cuando se te solicite, introduce Y para confirmar y continuar.
sudo apt install jellyfin
Una vez finalizada la instalación, ejecuta el siguiente comando para verificar el servicio jellyfin y asegurarte de que el servicio se está ejecutando y está habilitado.
sudo systemctl is-enabled jellyfin sudo systemctl status jellyfin
En la siguiente salida, puedes ver que Jellyfin se está ejecutando y está habilitado.
También puedes verificar los puertos para Jelly utilizando el comando ss que aparece a continuación.
ss -tulpn | grep jellyfin
Puedes ver diferentes puertos 8096/tcp para el tráfico HTTP, 8920/tcp para el tráfico HTTPS, 1900/udp y 7359/udp para el autodescubrimiento del servicio.
Generar certificados SSL/TLS
En esta guía, has asegurado la instalación de Jeallyfin con certificados SSL/TLS y el proxy inverso de Apache. Y ahora, generarás certificados SSl/TLS mediante Certbot y letsencrypt.
PD: También puedes utilizar un certificado autofirmado si estás en un entorno local. Pero para un despliegue externo, asegúrate de que tu nombre de dominio está preparado y apunta a tu dirección IP de Ubuntu.
Ejecuta el siguiente comando para instalar Certbot en tu sistema Ubuntu. Introduce Y y pulsa ENTER para continuar.
sudo apt install certbot
Ahora ejecuta el siguiente comando para crear un nuevo directorio /var/www/html.
mkdir -p /var/www/html
Por último, ejecuta el siguiente comando de certbot para generar certificados SSL/TLS para tu nombre de dominio Jellyfin. Asegúrate de cambiar la dirección de correo electrónico y el nombre de dominio con tus datos.
sudo certbot certonly --agree-tos --email [email protected] --no-eff-email --webroot -w /var/www/html -d media.hwdomain.io
Una vez finalizado todo el proceso, tus certificados SSL/TLS estarán disponibles en el directorio /etc/letsencrypt/live/domain.com.
Configurar Apache como Proxy Inverso
En esta sección, instalarás y configurarás el servidor web Apache como proxy inverso para Jellyfin. Comencemos.
En primer lugar, ejecuta el siguiente comando para instalar el servidor web Apache en tu sistema.
sudo apt install apache2 -y
Una vez finalizada la instalación, ejecuta el siguiente comando a2enmod para habilitar los módulos Apache necesarios en tu instalación.
sudo a2enmod proxy proxy_http ssl proxy_wstunnel remoteip http2 headers
Ahora ejecuta el siguiente comando del editor nano para crear un nuevo archivo de host virtual Apache /etc/apache2/sites-available/jellyfin.conf.
sudo nano /etc/apache2/sites-available/jellyfin.conf
Introduce la siguiente configuración para establecer un proxy inverso para Jeallyfin. Y asegúrate de cambiar el nombre de dominio y la ruta de los certificados SSL con tus datos.
<VirtualHost *:80> ServerName media.hwdomain.io # Comment to prevent HTTP to HTTPS redirect Redirect permanent / https://media.hwdomain.io/ ErrorLog /var/log/apache2/media.hwdomain.io-error.log CustomLog /var/log/apache2/media.hwdomain.io-access.log combined </VirtualHost> # If you are not using an SSL certificate, replace the 'redirect' # line above with all lines below starting with 'Proxy' <IfModule mod_ssl.c> <VirtualHost *:443> ServerName media.hwdomain.io # This folder exists just for certbot(You may have to create it, chown and chmod it to give apache permission to read it) DocumentRoot /var/www/html/jellyfin/public_html ProxyPreserveHost On # Letsencrypt's certbot will place a file in this folder when updating/verifying certs # This line will tell Apache to not to use the proxy for this folder. ProxyPass "/.well-known/" "!" # Tell Jellyfin to forward that requests came from TLS connections RequestHeader set X-Forwarded-Proto "https" RequestHeader set X-Forwarded-Port "443" ProxyPass "/socket" "ws://192.168.5.30:8096/socket" ProxyPassReverse "/socket" "ws://192.168.5.30:8096/socket" ProxyPass "/" "http://192.168.5.30:8096/" ProxyPassReverse "/" "http://192.168.5.30:8096/" SSLEngine on SSLCertificateFile /etc/letsencrypt/live/media.hwdomain.io/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/media.hwdomain.io/privkey.pem Protocols h2 http/1.1 # Enable only strong encryption ciphers and prefer versions with Forward Secrecy SSLCipherSuite HIGH:RC4-SHA:AES128-SHA:!aNULL:!MD5 SSLHonorCipherOrder on # Disable insecure SSL and TLS versions SSLProtocol all -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 ErrorLog /var/log/apache2/media.hwdomain.io-error.log CustomLog /var/log/apache2/media.hwdomain.io-access.log combined </VirtualHost> </IfModule>
Guarda y cierra el archivo cuando hayas terminado.
A continuación, ejecuta el siguiente comando para habilitar el archivo de host virtual jellyfin.conf. A continuación, verifica la configuración de Apache para asegurarte de que la sintaxis es correcta.
sudo a2ensite jellyfin.conf sudo apachectl configtest
Si todo va bien, deberías ver una salida como«Sintaxis OK«.
Ahora ejecuta el comando systemctl para reiniciar el servicio Apache y aplicar tus cambios.
sudo systemctl restart apache2
Una vez reiniciado, verifica el servicio Apache para asegurarte de que se está ejecutando y está habilitado.
sudo systemctl is-enabled apache2 sudo systemctl status apache2
Si todo va bien, deberías ver que Apache está habilitado y funcionando en tu máquina Ubuntu.
Configurar UFW
Con Jellyfin instalado, vamos a configurar UFW para asegurar tu instalación.
Primero, ejecuta el siguiente comando para abrir puertos para SSH, HTTP y HTTPS.
sudo ufw allow OpenSSH sudo ufw allow 'Apache Full'
Ahora abre los puertos 1900/udp y 7359/udp para la detección automática mediante el siguiente comando.
sudo ufw allow 1900/udp sudo ufw allow 7359/udp
A continuación, ejecuta el siguiente comando para iniciar y habilitar UFW. Escribe Y para confirmar.
sudo ufw enable
Por último, comprueba la lista de puertos y servicios de UFW utilizando el comando siguiente.
sudo ufw status
Verás que los perfiles OpenSSH y «Apache Full» están habilitados, y que los puertos 1900/udp y 7359/udp también están añadidos a UFW.
Instalación del Servidor Multimedia Jellyfin
Llegados a este punto, todas las dependencias están configuradas. Ya puedes acceder a tu instalación de Jellyfin desde tu navegador web.
Visita el nombre de dominio de tu Servidor Jellyfin (es decir: https://media.hwdomain.io/) utilizando tu navegador web. Verás el mensaje de bienvenida de Jellyfin.
Haz clic en Siguiente para continuar.
Ahora crea tu primer usuario en Jellyfin y haz clic en Siguiente.
Ahora se te pedirá que configures una Mediateca para Jellyfin, haz clic en Siguiente para omitirlo. Podrás configurarla más tarde, una vez finalizada la configuración.
Selecciona el Idioma de Metadatos que prefieras y vuelve a hacer clic en Siguiente.
En la sección Acceso remoto, marca la casilla Permitir conexión remota y Asignación automática de puertos. A continuación, haz clic en Siguiente para confirmar.
Por último, haz clic en Finalizar para completar la instalación de Jellyfin.
Y serás redirigido a la página de inicio de sesión de Jellyfin. Introduce tu nombre de usuario y contraseña, y haz clic en Iniciar sesión.
Ahora verás el panel de control de Jellyfin como el siguiente:
Si haces clic en el menú Administración, verás información detallada sobre tu servidor Jellyfin. En este ejemplo, puedes ver que Jellyfin xxx está instalado en el sistema Ubuntu.
Conclusión
¡Enhorabuena! Ya has instalado con éxito el servidor multimedia Jellyfin en el servidor Ubuntu 22.04. También has asegurado Jellyfin con Apache como Proxy Inverso y SSl/TLS de Letsencrypt. A partir de ahora, puedes añadir una biblioteca de archivos multimedia y almacenar tu colección de bibliotecas en Jellyfin.