Cómo instalar el servidor multimedia Jellyfin en Debian 12

Jellyfin es un software gratuito para crear un servidor multimedia. Te permite recopilar, gestionar y transmitir tus archivos multimedia desde múltiples dispositivos o clientes. Jellyfin es una aplicación gratuita y autoalojada que se puede instalar en tu servidor, por lo que puedes crear tu propio servidor multimedia en tu entorno local, como en casa, y luego permitir que múltiples clientes y dispositivos accedan a todos tus archivos multimedia.

Jellyfin es un servidor de archivos multimedia alternativo a los propietarios como Emby y Plex. Te permite gestionar archivos multimedia desde cualquier dispositivo y en cualquier lugar.

Esta guía te mostrará cómo instalar el servidor multimedia Jellyfin en Debian 12. Instalarás Jellyfin mediante un paquete binario preconstruido y lo asegurarás con UFW (Cortafuegos sin complicaciones), certificados SSL/TLS de Letsencrypt y el proxy inverso Apache2.

Requisitos previos

Para comenzar el proceso, asegúrate de que tienes lo siguiente

  • Un servidor Debian 12 con 2 ó 4 GB de memoria.
  • Un usuario no root con privilegios de administrador.
  • Un nombre de dominio apuntando a la dirección IP del servidor.

Añadir el repositorio Jellyfin

El servidor multimedia Jellyfin puede instalarse de muchas formas, manualmente o mediante un paquete preconstruido que está disponible para la mayoría de las distribuciones de Linux. En este primer paso, añadirás el repositorio de Jellyfin a tu servidor Debian.

En primer lugar, ejecuta el siguiente comando apt para instalar las dependencias en tu máquina Debian.

sudo apt install apt-transport-https ca-certificates gnupg curl -y

instalar dependencias

Una vez instaladas las dependencias, ejecuta el siguiente comando para añadir la clave GPG del repositorio jellyfin, que se almacenará en /etc/apt/keyrings/jellyfin.gpg.

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

Ahora ejecuta el siguiente comando para añadir el repositorio jellyfin a tu servidor Debian. Tras ejecutar el comando, se creará el archivo del repositorio /etc/apt/sources.list.d/jellyfin.sources.

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 repositorio

Por último, actualiza y refresca tu índice de paquetes Debian utilizando el comando apt update que aparece a continuación.

sudo apt update

Deberías ver el repositorio jellyfin añadido a la lista de repositorios del sistema.

actualizar repo

Instalar y gestionar Jellyfin

Con el repositorio jellyfin añadido, estás listo para instalar el servidor multimedia jellyfin. Sigue estos pasos para instalar jellyfin y aprender a gestionar el servicio jellyfin mediante systemctl.

Ejecuta el siguiente comando apt install para instalar el servidor multimedia jellyfin. Escribe y para la confirmación y pulsa ENTER para continuar.

sudo apt install jellyfin

instalar jellyfin

Tras la instalación, asegúrate de que el servicio Jellyfin se está ejecutando y está habilitado mediante el comando que aparece a continuación.

sudo systemctl is-enabled jellyfin
sudo systemctl status jellyfin

Si se está ejecutando, deberías ver la salida activo (en ejecución). Si está habilitado, la salida que deberías obtener es habilitado. Esto significa que Jellyfin se iniciará automáticamente al arrancar el sistema.

verificar jellyfin

Por defecto, Jellyfin se ejecuta en localhost con el puerto 8096. Ejecuta el siguiente comando ss para verificar la lista de puertos de tu sistema Debian.

ss -tulpn

Verás que el puerto 8096 es utilizado por el servidor multimedia Jellyfin.

comprobación del puerto jellyfin

Por último, ejecuta el siguiente comando systemctl para iniciar, detener o reiniciar el servicio Jellyfin.

sudo systemctl start jellyfin
sudo systemctl stop jellyfin
sudo systemctl restart jellyfin

Configuración de seguridad con UFW

En la siguiente sección, asegurarás tu servidor multimedia Jellyfin mediante UFW. Instalarás UFW y, a continuación, abrirás los protocolos HTTP y HTTPS para el acceso de los clientes. Debes abrir los protocolos HTTP y HTTPS porque utilizarás Apache2 como proxy inverso.

En primer lugar, instala UFW mediante el comando apt install que aparece a continuación.

sudo apt install ufw -y

instalar ufw

Una vez instalado UFW, ejecuta el siguiente comando ufw para añadir el servicio OpenSSH y, a continuación, inicia y habilita UFW.

sudo ufw allow OpenSSH
sudo ufw enable

Escribe y cuando te lo pida y UFW debería estar ejecutándose y habilitado.

Ahora ejecuta el siguiente comando para añadir el perfil WWW Comple to y verificar el estado de UFW. El perfil WWW Completo abrirá los protocolos HTTP y HTTPS en tu sistema Debian.

sudo ufw allow "WWW Full"
sudo ufw status

El resultado debería indicar que la UFW está activa con los perfiles OpenSSH y WWW Completo activados.

configuración ufw

Instalación y configuración de Apache2 como proxy inverso

En esta guía, ejecutarás el servidor multimedia Jellyfin dentro de Apache2 como proxy inverso. También asegurarás tu instalación con certificados SSL/TLS generados mediante Certbot y Letsencrypt.

Ahora, completa las siguientes tareas: instala Apache2 y Certbot, genera certificados SSL/TLS y crea la configuración del host virtual Apache2 para el servidor multimedia Jellyfin.

Instalar Apache2 y Certbot

En primer lugar, ejecuta el siguiente comando para instalar el servidor web Apache2 y Certbot. Escribe y para la confirmación y pulsa INTRO.

sudo apt install apache2 certbot

instalar apache2 certbot

Una vez finalizada la instalación, el servicio apache2 debería estar ejecutándose y activado por defecto. Compruébalo utilizando el siguiente comando systemctl.

sudo systemctl is-enabled apache2
sudo systemctl status apache2

La salida enabled indica que el servicio apache2 se iniciará automáticamente al arrancar. Y la salida active (running ) indica que el estado del servicio es running.

comprobando apache2

Generar certificados SSL/TLS con Certbot

Antes de generar certificados SSL/TLS, habilita algunos módulos de Apache2 mediante el comando a2enmod y reinicia el servicio Apache2.

sudo a2enmod proxy proxy_http ssl proxy_wstunnel remoteip http2 headers
sudo systemctl restart apache2

Ahora ejecuta el siguiente comando para crear un nuevo directorio /var/www/html/jellyfin/public_html y cambia la propiedad al usuario y grupo www-data. Este directorio se utilizará como directorio raíz web temporal para generar certificados SSL/TLS.

sudo mkdir -p /var/www/html/jellyfin/public_html
sudo chown -R www-data:www-data /var/www/html/jellyfin/public_html

A continuación, ejecuta el siguiente comando certbot para generar nuevos certificados SSL/TLS. Asegúrate de cambiar la dirección de correo electrónico y el nombre de dominio antes de ejecutar el comando.

sudo certbot certonly --agree-tos --email [email protected] --no-eff-email --webroot -w /var/www/html/jellyfin/public_html -d media.hwdomain.io

Tras el proceso, tus certificados SSL/TLS estarán disponibles en el directorio /etc/letsencrypt/live/domain.com. El archivo fullchain.pem es la clave pública y el privkey.pem es la clave privada.

Configurar Apache2 como proxy inverso

Crea una nueva configuración de host virtual /etc/apache2/sites-available/jellyfin. conf utilizando el siguiente comando del editor nano.

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

Inserta la configuración que aparece a continuación y asegúrate de cambiar el nombre de dominio, la ruta de los certificados SSL/TLS y la dirección IP del servidor con tu información. Con esto, configurarás Apache2 como proxy inverso para el servidor multimedia jellyfin que se ejecuta en el puerto 8096.

<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.10.15:8096/socket"
ProxyPassReverse "/socket" "ws://192.168.10.15:8096/socket"

ProxyPass "/" "http://192.168.10.15:8096/"
ProxyPassReverse "/" "http://192.168.10.15: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 el archivo y sal del editor cuando hayas terminado.

A continuación, ejecuta el comando a2ensite que aparece a continuación para activar el host virtual jellyfin.conf, y luego verifica tu sintaxis de Apache2.

sudo a2ensite jellyfin.conf
sudo apachectl configtest

Si la sintaxis de Apache2 es correcta, deberías obtener una salida Sintaxis OK.

configurar apache2

Ahora reinicia el servicio apache2 utilizando el siguiente comando para aplicar los cambios. Tu instalación de jellyfin debería estar funcionando y asegurada bajo el proxy inverso Apache2.

sudo systemctl restart apache2

Inicia tu navegador web y visita el nombre de dominio de tu instalación de Jellyfin, como https://media.hwdomain.io/. Si la configuración se ha realizado correctamente, deberías obtener el asistente de instalación de Jellyfin de la siguiente forma:

página de bienvenida

Instalación del servidor multimedia Jellyfin

En el siguiente paso, completarás la configuración del servidor multimedia Jellyfin mediante el asistente de instalación.

En primer lugar, selecciona el idioma predeterminado para tu instalación de Jellyfin y haz clic en Siguiente.

idioma por defecto

Ahora, crea un nuevo usuario administrador para tu instalación de Jellyfin. Introduce tu nombre de usuario y contraseña, y haz clic en Siguiente.

configurar usuario

Para las bibliotecas multimedia, puedes configurarlas más adelante. Haz clic en Siguiente para continuar.

bibliotecas

Selecciona el idioma de metadatos que prefieras para tus bibliotecas y haz clic en Siguiente.

lenguaje de metadatos

Marca la opción Permitir conexiones remotas para permitir el acceso remoto a tu servidor multimedia jellyfin. Además, puedes habilitar la asignación de puertos marcando la opción. A continuación, haz clic en Siguiente.

permitir conexiones remotas

Si la configuración se ha realizado correctamente, deberías recibir el mensaje ¡Has terminado! Haz clic en Finalizar para completar la instalación de jellyfin.

instalación finalizada

Ahora, deberías ser redirigido a la página de inicio de sesión de Jellyfin. Introduce tu usuario y contraseña de administrador de Jellyfin y haz clic en Iniciar sesión.

acceder a jellyfin

Si todo va bien, deberías obtener el panel de administración de Jellyfin como este:

panel de usuario

Por último, haz clic en el menú Panel de control de la sección Administración. Deberías ver información detallada sobre la instalación de tu servidor multimedia Jellyfin:

panel de administración

Conclusión

Como conclusión de esta guía, has terminado la instalación del servidor multimedia Jellyfin en Debian 12 con el proxy inverso Apache2 y SSL/TLS de Letsencrypt. También has asegurado tu servidor Jellyfin con UFW y has completado la configuración básica del servidor multimedia Jellyfin. Puedes crear una nueva biblioteca multimedia y subir tus archivos multimedia a Jellyfin.

También te podría gustar...