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ámetro | Jellyfin | Plex |
|---|---|---|
| Código fuente | Abierto | Propietario |
| Funciones premium | El servidor y los clientes oficiales no tienen un nivel de pago | Algunas funciones dependen del plan |
| Cuenta central | No es necesaria | Utiliza el ecosistema del proveedor |
| Acceso remoto | El propietario configura un dominio, un proxy inverso o una VPN | Ofrece más mecanismos preparados |
| Control de los datos | Máximo | Parte 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.
| Modo | Qué ocurre | Carga |
|---|---|---|
| Direct Play | El servidor transmite el archivo original | Baja |
| Direct Stream | Se modifica el contenedor o una pista individual | Baja o media |
| Transcoding | El códec, la resolución o la tasa de bits cambian sobre la marcha | Alta |
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.
| Escenario | Configuración inicial | Comentario |
|---|---|---|
| Música y un flujo 1080p con Direct Play | 2 vCPU, 4 GB de RAM | La velocidad de la red y del disco es más importante |
| Biblioteca multimedia familiar pequeña | 4 vCPU, 8 GB de RAM | Se recomiendan formatos compatibles |
| Transcodificación ocasional de 1080p | 4–8 vCPU potentes o una GPU | La carga depende del códec |
| Varios flujos 4K/HDR | iGPU Intel moderna o tarjeta gráfica | Un 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/jellyfin2. 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 enableSi 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.mkvCrea 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 jellyfinTraslada el archivo comprimido fuera del VPS. Los archivos multimedia se respaldan por separado.
Para actualizar, ejecuta:
sudo docker compose pull
sudo docker compose up -dNo 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.
