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

activar universo

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

añadir repo

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

actualizar repo

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

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

comprobar estado

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.

puerto de control

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

instala apache2

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

configurar proxy inverso

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.

verificar apache2

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.

bienvenido

Ahora crea tu primer usuario en Jellyfin y haz clic en Siguiente.

configurar usuario

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.

mediateca saltar

Selecciona el Idioma de Metadatos que prefieras y vuelve a hacer clic en Siguiente.

lenguaje de metadatos

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.

acceso remoto

Por último, haz clic en Finalizar para completar la instalación de Jellyfin.

acabado

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.

inicio de sesión

Ahora verás el panel de control de Jellyfin como el siguiente:

salpicadero

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.

administración

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.

También te podría gustar...