¿Qué es Jellyfin?

Jellyfin es un servidor multimedia gratuito y de código abierto. Transmite tus películas, series, música y fotos a navegadores, teléfonos, televisores y otros dispositivos, y puede transcodificar vídeo sobre la marcha. El proyecto proporciona una imagen oficial, jellyfin/jellyfin, que también se publica como ghcr.io/jellyfin/jellyfin. El proyecto LinuxServer.io ofrece otra imagen, lscr.io/linuxserver/jellyfin, con sus propias carpetas y variables.

Descripción de la herramienta

Esta herramienta crea un archivo compose.yaml para Jellyfin a partir de la guía de instalación del proyecto. Puedes elegir la imagen y la etiqueta, los puertos y la red, el usuario, las carpetas de configuración y cache, y cualquier cantidad de carpetas multimedia, que pueden montarse como solo lectura. Con la imagen oficial también puedes montar carpetas con fuentes personalizadas y fuentes alternativas. Para la tarjeta gráfica, la herramienta añade lo que indican los documentos de Jellyfin: /dev/dri y el grupo de renderizado para Intel y AMD, o el runtime de NVIDIA y una reserva de GPU para NVIDIA. Cambia el archivo cuando eliges la imagen de LinuxServer.io, que utiliza PUID, PGID y TZ en lugar de user. Todo se crea en tu navegador.

Funciones

  • La imagen oficial de Docker Hub o GitHub Container Registry, o la imagen de LinuxServer.io, con cualquier etiqueta
  • Modo puente con los puertos 8096 y 7359/udp, un puerto HTTPS opcional 8920 y una dirección de enlace, o modo de host, necesario para DLNA
  • La URL pública del servidor para los clientes que detectan el servidor
  • Un usuario con el formato uid:gid para la imagen oficial, o PUID, PGID y la zona horaria para LinuxServer.io
  • Configuración y cache en el host o en volúmenes Docker con nombre, que se declaran automáticamente
  • Varias carpetas multimedia, cada una con una ruta en el contenedor y una opción para montarla como solo lectura
  • Fuentes personalizadas y fuentes alternativas para subtítulos que se incrustan durante la transcodificación
  • Aceleración por hardware con VA-API o QSV para Intel y AMD, o NVENC para NVIDIA
  • Cualquier otra variable de entorno, comentarios que explican el archivo y una descarga como compose.yaml

Ejemplos

La configuración predeterminada proporciona el ejemplo de la documentación de Jellyfin, con las carpetas junto al archivo:

services:
  jellyfin:
    image: jellyfin/jellyfin
    container_name: jellyfin
    ports:
      - "8096:8096"
      - "7359:7359/udp"
    volumes:
      - ./config:/config
      - ./cache:/cache
      - /path/to/media:/media
    restart: unless-stopped

Al elegir la aceleración por hardware de NVIDIA, se añaden el runtime y la reserva de GPU:

runtime: nvidia
deploy:
  resources:
    reservations:
      devices:
        - driver: nvidia
          count: all
          capabilities:
            - gpu

Consejos

  • Guarda el resultado como compose.yaml e inícialo con docker compose up -d. Después, abre http://localhost:8096 y añade tus carpetas multimedia como bibliotecas, utilizando las rutas del contenedor
  • Ejecutar Jellyfin en un contenedor solo es compatible con Linux. En Windows y macOS, instala Jellyfin de forma nativa, porque se sabe que la aceleración por hardware y los análisis de bibliotecas fallan en contenedores en esos sistemas
  • Encuentra el ID del grupo de renderizado en el host con getent group render | cut -d: -f3. En algunos sistemas, el grupo es video o input
  • Para NVIDIA, instala primero en el host el controlador de NVIDIA y NVIDIA Container Toolkit
  • Después de activar la aceleración por hardware en el contenedor, actívala en el panel de control de Jellyfin, en Reproducción y Transcodificación
  • DLNA es un complemento y necesita el modo de host, porque su detección utiliza difusiones en el puerto 1900/udp que no atraviesan el puente
  • Las imágenes del proyecto oficial y de LinuxServer.io almacenan sus datos en lugares diferentes, por lo que no puedes intercambiar una por otra en una carpeta existente
  • Monta los archivos multimedia como solo lectura cuando Jellyfin no necesite modificarlos