Tropic Host

Jellyfin en un VPS: instala tu propio servidor multimedia

7 min de lectura
Tropic
Jellyfin en un VPS: instala tu propio servidor multimedia

Jellyfin en un VPS: cómo crear tu propio servidor multimedia

Una carpeta llena de vídeos rara vez se parece a una biblioteca multimedia cómoda: nombres de archivo desordenados, subtítulos separados y búsquedas manuales del episodio correcto. Jellyfin convierte este tipo de archivo en un servicio de streaming personal con carátulas, descripciones, perfiles y continuación de la reproducción.

Al mismo tiempo, Jellyfin no vende suscripciones ni ofrece un catálogo de contenido preparado. Funciona con tus propios archivos y puede alojarse en un ordenador doméstico, un NAS o un VPS. A continuación analizaremos sus funciones, los requisitos del servidor y la instalación en Ubuntu con un dominio y HTTPS.

Qué es Jellyfin y para qué sirve

Jellyfin es un servidor multimedia gratuito y de código abierto. El servidor indexa películas, series, música, fotografías y otros contenidos, mientras que las aplicaciones cliente los reproducen en un teléfono, un ordenador o un televisor.

Después de analizar las carpetas, Jellyfin descarga carátulas y descripciones, organiza las series por temporadas, recuerda el progreso y muestra una sección de «Seguir viendo». Para una familia se pueden crear perfiles locales independientes, limitar el acceso a las bibliotecas y configurar el control parental. Quick Connect permite iniciar sesión en un televisor mediante un código corto, sin tener que introducir una contraseña larga.

Hay clientes disponibles para Android, iOS, Android TV, Roku, webOS, Tizen, Xbox y ordenadores. También existe una interfaz web y una integración con Kodi.

Además, Jellyfin admite música, IPTV, sintonizadores de televisión y grabación de emisiones. SyncPlay sincroniza la reproducción entre varios usuarios, mientras que los complementos añaden subtítulos, nuevas fuentes de metadatos e integraciones.

Jellyfin no busca ni descarga películas por su cuenta. Solo organiza y transmite contenido que ya está en posesión del propietario del servidor.

Jellyfin y Plex: principales diferencias

Ambas soluciones convierten una colección local en un servicio multimedia, pero utilizan modelos diferentes.

ParámetroJellyfinPlex
Código fuenteAbiertoPropietario
Funciones premiumEl servidor y los clientes oficiales no tienen un nivel de pagoAlgunas funciones dependen del plan
Cuenta centralNo es necesariaUtiliza el ecosistema del proveedor
Acceso remotoEl propietario configura un dominio, un proxy inverso o una VPNOfrece más mecanismos preparados
Control de los datosMáximoParte de la infraestructura está controlada por el proveedor

Jellyfin se elige por su independencia, privacidad y ausencia de suscripción. Plex puede resultar más cómodo cuando lo más importante es una puesta en marcha lo más sencilla posible y aplicaciones igual de pulidas en todos los dispositivos.

Direct Play o transcodificación: qué carga el servidor

El rendimiento de Jellyfin depende menos del tamaño de la biblioteca que del método de reproducción.

ModoQué ocurreCarga
Direct PlayEl servidor transmite el archivo originalBaja
Direct StreamSe modifica el contenedor o una pista individualBaja o media
TranscodingEl códec, la resolución o la tasa de bits cambian sobre la marchaAlta

Si el televisor admite el códec, el audio y los subtítulos del archivo, el servidor apenas utiliza CPU. Los problemas comienzan cuando el cliente no entiende el formato, la conexión obliga a reducir la tasa de bits o los subtítulos deben incrustarse en la imagen. En ese caso, Jellyfin inicia FFmpeg y transcodifica el vídeo en tiempo real.

El contenido 4K, HEVC, HDR y la conversión de HDR a SDR son especialmente exigentes. Un VPS normal sin tarjeta gráfica puede no ser capaz de procesarlos, aunque disponga de muchos núcleos virtuales. Por eso, los formatos compatibles y Direct Play suelen ahorrar más dinero que pasar al siguiente plan.

Qué servidor necesita Jellyfin

La recomendación oficial para una instalación normal es de unos 8 GB de RAM. En Linux sin interfaz gráfica, un servidor pequeño puede funcionar con 4 GB. Se necesita un disco rápido para el sistema, la base de datos, las imágenes, la caché y los archivos temporales; la biblioteca multimedia se almacena por separado y normalmente ocupa la mayor parte del espacio.

EscenarioConfiguración inicialComentario
Música y un flujo 1080p con Direct Play2 vCPU, 4 GB de RAMLa velocidad de la red y del disco es más importante
Biblioteca multimedia familiar pequeña4 vCPU, 8 GB de RAMSe recomiendan formatos compatibles
Transcodificación ocasional de 1080p4–8 vCPU potentes o una GPULa carga depende del códec
Varios flujos 4K/HDRiGPU Intel moderna o tarjeta gráficaUn VPS normal solo con CPU no es adecuado

También debes tener en cuenta el tráfico: un flujo de 20 Mbps transfiere unos 9 GB de datos por hora. Con una reproducción diaria, el consumo alcanza rápidamente cientos de gigabytes al mes.

Servidor doméstico o VPS

Un mini PC o NAS doméstico resulta más económico para una colección de varios terabytes y una transcodificación frecuente por hardware. Puedes instalar discos de gran capacidad y elegir un procesador con Intel Quick Sync, pero el acceso remoto depende de la electricidad, la conexión doméstica y la disponibilidad de una IP pública.

Un VPS tiene una dirección pública, una conexión estable y funciona las 24 horas. Es cómodo para música, una videoteca pequeña, Direct Play y usuarios situados en lugares diferentes. Sus limitaciones son el coste del almacenamiento y la ausencia de GPU en los planes convencionales.

También existe una opción híbrida: los archivos permanecen en casa y el VPS se utiliza como punto de entrada protegido. Este esquema ayuda cuando no se dispone de una IPv4 pública, pero la velocidad de reproducción sigue estando limitada por el ancho de banda de subida de la conexión doméstica.

Instalación de Jellyfin en Ubuntu mediante Docker Compose

En la configuración siguiente, Jellyfin y Caddy se ejecutan en la misma red de Docker. El puerto 8096 no se expone a Internet; Caddy recibe las conexiones HTTPS y obtiene automáticamente un certificado.

Primero, dirige el registro A del dominio, por ejemplo media.example.com, a la dirección IP del servidor.

1. Instala Docker y crea los directorios

sudo apt update
sudo apt install -y docker.io docker-compose-v2
sudo systemctl enable --now docker

sudo mkdir -p /opt/jellyfin/{config,cache,caddy-data,caddy-config}
sudo mkdir -p /srv/media/{movies,series,music}
cd /opt/jellyfin

2. Crea /opt/jellyfin/compose.yaml

services:
  jellyfin:
    image: jellyfin/jellyfin:latest
    container_name: jellyfin
    restart: unless-stopped
    volumes:
      - ./config:/config
      - ./cache:/cache
      - /srv/media:/media:ro
    networks: [media]

  caddy:
    image: caddy:2
    container_name: jellyfin-caddy
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./caddy-data:/data
      - ./caddy-config:/config
    networks: [media]

networks:
  media:

El parámetro :ro monta la biblioteca multimedia en modo de solo lectura y protege los archivos originales frente a una eliminación accidental desde Jellyfin.

3. Crea /opt/jellyfin/Caddyfile

media.example.com {
    reverse_proxy jellyfin:8096
}

Sustituye el dominio por el tuyo, inicia los contenedores y abre los puertos necesarios:

sudo docker compose up -d

sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 443/udp
sudo ufw enable

Si SSH utiliza otro puerto, ábrelo con una regla independiente antes de ejecutar ufw enable.

Cuando se haya emitido el certificado, abre https://media.example.com. En los ajustes de red de Jellyfin, añade el proxy inverso a la lista de proxies de confianza para que las restricciones de acceso externo funcionen correctamente.

Configuración inicial de la biblioteca multimedia

En el asistente, selecciona el idioma, crea un administrador y añade las bibliotecas:

  • películas — /media/movies;
  • series — /media/series;
  • música — /media/music.

Utiliza nombres claros para garantizar una identificación precisa:

/media/movies/Título de la película (2024)/Título de la película (2024).mkv
/media/series/Título de la serie (2024)/Season 01/Título de la serie S01E01.mkv

Crea un perfil estándar independiente para la reproducción y oculta la cuenta de administrador de la pantalla de inicio de sesión. Concede a los usuarios acceso únicamente a las bibliotecas necesarias y no permitas eliminar archivos salvo que sea imprescindible.

Actualizaciones y copias de seguridad

La configuración de Jellyfin contiene los usuarios, los ajustes, la base de datos y el progreso de reproducción. Antes de actualizar, detén el contenedor y guarda el directorio config:

cd /opt/jellyfin
sudo docker compose stop jellyfin
sudo tar -czf /root/jellyfin-config-$(date +%F).tar.gz config
sudo docker compose start jellyfin

Traslada el archivo comprimido fuera del VPS. Los archivos multimedia se respaldan por separado.

Para actualizar, ejecuta:

sudo docker compose pull
sudo docker compose up -d

No expongas directamente el puerto 8096. Utiliza HTTPS o una VPN, instala las actualizaciones con regularidad y controla el espacio libre en disco.

Jellyfin en un VPS de tropic.host

Para una biblioteca multimedia pequeña que utilice principalmente Direct Play, puedes empezar con un VPS Linux de 4 GB de RAM. Para varios usuarios, una base de datos grande y servicios adicionales, es más razonable elegir 8 GB.

Al elegir un VPS en tropic.host, evalúa por separado la capacidad del disco, el tráfico mensual y la necesidad de transcodificación. Un servidor virtual es cómodo como punto de acceso siempre disponible con IP pública y HTTPS, pero no sustituye a un servidor con GPU. Si necesitas varios flujos 4K/HDR con conversión de formato, es preferible utilizar un servidor doméstico con iGPU Intel, un servidor dedicado o un plan especializado con tarjeta gráfica.

Puedes comenzar con una colección pequeña, comprobar en el panel de Jellyfin la proporción de sesiones Direct Play y solo entonces ampliar la CPU, la RAM o el almacenamiento según la carga real.

Conclusión

Jellyfin convierte tu propia colección en un servicio de streaming personal sin suscripción obligatoria ni cuenta central. Para desplegarlo correctamente, es importante calcular de antemano el almacenamiento, el tráfico y la probabilidad de transcodificación.

Un servidor pequeño con Direct Play suele funcionar con 4–8 GB de RAM. La reproducción frecuente de 4K/HDR requiere procesamiento de vídeo por hardware. Independientemente de la configuración, protege el acceso externo mediante HTTPS o una VPN y realiza copias de seguridad separadas de los ajustes y la biblioteca multimedia.

FAQ

¿Jellyfin es completamente gratuito?

Sí. El servidor y los clientes están disponibles sin un plan premium. Solo hay que pagar el hardware, el VPS, los discos, el dominio y el tráfico.

¿Jellyfin incluye películas y series listas para ver?

No. El usuario añade sus propios archivos multimedia.

¿Se puede ejecutar Jellyfin en un VPS sin tarjeta gráfica?

Sí, si la mayoría de los archivos se reproducen mediante Direct Play. La transcodificación frecuente de contenido 4K y HDR requiere un servidor con una iGPU adecuada o una tarjeta gráfica.

¿Cuánta RAM necesita Jellyfin?

Un servidor Linux pequeño puede funcionar con 4 GB de RAM. Para una biblioteca multimedia familiar y varios usuarios, es mejor optar por 8 GB.

¿Cómo puedo usar Jellyfin de forma segura a través de Internet?

Utiliza un dominio y HTTPS mediante un proxy inverso, o una VPN. No expongas directamente el puerto 8096 y crea cuentas de usuario separadas con permisos mínimos.