Che cos'è Jellyfin?

Jellyfin è un media server gratuito e open source. Trasmette i tuoi film, programmi, musica e foto a browser, telefoni, TV e altri dispositivi e può eseguire la transcodifica video al volo. Il progetto fornisce un'immagine ufficiale, jellyfin/jellyfin, pubblicata anche come ghcr.io/jellyfin/jellyfin. Il progetto LinuxServer.io offre un'altra immagine, lscr.io/linuxserver/jellyfin, con cartelle e variabili proprie.

Descrizione dello strumento

Questo strumento crea un file compose.yaml per Jellyfin a partire dalla guida all'installazione del progetto. Puoi scegliere l'immagine e il tag, le porte e la rete, l'utente, le cartelle per la configurazione e la cache e un numero qualsiasi di cartelle multimediali, che possono essere montate in sola lettura. Con l'immagine ufficiale puoi anche montare cartelle contenenti font personalizzati e font di fallback. Per la scheda grafica, lo strumento aggiunge ciò che indicano i documenti di Jellyfin: /dev/dri e il gruppo render per Intel e AMD, oppure il runtime NVIDIA e una riserva GPU per NVIDIA. Modifica il file quando scegli l'immagine LinuxServer.io, che usa PUID, PGID e TZ al posto di user. Tutto viene creato nel browser.

Funzionalità

  • L'immagine ufficiale da Docker Hub o dal GitHub Container Registry, oppure l'immagine da LinuxServer.io, con qualsiasi tag
  • Modalità bridge con le porte 8096 e 7359/udp, una porta HTTPS facoltativa 8920 e un indirizzo di binding, oppure la modalità host, necessaria per DLNA
  • L'URL del server pubblicato per i client che individuano il server
  • Un utente nel formato uid:gid per l'immagine ufficiale, oppure PUID, PGID e il fuso orario per LinuxServer.io
  • Configurazione e cache sull'host o in volumi Docker denominati, dichiarati automaticamente
  • Diverse cartelle multimediali, ciascuna con un percorso nel container e un'opzione per montarla in sola lettura
  • Font personalizzati e font di fallback per i sottotitoli incorporati durante la transcodifica
  • Accelerazione hardware con VA-API o QSV per Intel e AMD, oppure NVENC per NVIDIA
  • Qualsiasi altra variabile d'ambiente, commenti che spiegano il file e un download come compose.yaml

Esempi

Le impostazioni predefinite forniscono l'esempio della documentazione di Jellyfin, con le cartelle accanto al file:

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

La scelta dell'accelerazione hardware NVIDIA aggiunge il runtime e la riserva GPU:

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

Suggerimenti

  • Salva il risultato come compose.yaml e avvialo con docker compose up -d. Poi apri http://localhost:8096 e aggiungi le tue cartelle multimediali come raccolte, usando i percorsi nel container
  • L'esecuzione di Jellyfin in un container è supportata solo su Linux. Su Windows e macOS, installa Jellyfin in modo nativo, perché è noto che l'accelerazione hardware e le scansioni delle raccolte presentino problemi nei container
  • Trova l'ID del gruppo render sull'host con getent group render | cut -d: -f3. Su alcuni sistemi il gruppo è video o input
  • Per NVIDIA, installa prima sull'host il driver NVIDIA e NVIDIA Container Toolkit
  • Dopo aver abilitato l'accelerazione hardware nel container, attivala nel pannello di controllo di Jellyfin alla voce Riproduzione, Transcodifica
  • DLNA è un plugin e richiede la modalità host, perché il suo rilevamento usa broadcast sulla porta 1900/udp, che non attraversano il bridge
  • Le immagini del progetto ufficiale e di LinuxServer.io archiviano i propri dati in posizioni diverse, quindi non puoi sostituire un'immagine con l'altra in una cartella esistente
  • Monta i contenuti multimediali in sola lettura quando Jellyfin non deve modificarli