Tropic Host

Jellyfin su VPS: installare il proprio media server

7 min di lettura
Tropic
Jellyfin su VPS: installare il proprio media server

Jellyfin su VPS: come creare il proprio media server

Una cartella piena di video raramente assomiglia a una mediateca comoda da usare: nomi dei file disordinati, sottotitoli separati e ricerca manuale dell’episodio corretto. Jellyfin trasforma un archivio di questo tipo in un servizio di streaming personale con locandine, descrizioni, profili e ripresa della visione.

Allo stesso tempo, Jellyfin non vende abbonamenti e non offre un catalogo di contenuti già pronto. Funziona con i propri file e può essere ospitato su un computer domestico, un NAS o un VPS. Di seguito analizzeremo le funzioni del servizio, i requisiti del server e l’installazione su Ubuntu con dominio e HTTPS.

Che cos’è Jellyfin e a cosa serve

Jellyfin è un media server gratuito e open source. Il server indicizza film, serie TV, musica, fotografie e altri contenuti, mentre le applicazioni client li riproducono su smartphone, computer o televisore.

Dopo la scansione delle cartelle, Jellyfin scarica locandine e descrizioni, organizza le serie per stagioni, memorizza l’avanzamento e mostra una sezione “Continua a guardare”. Per una famiglia è possibile creare profili locali separati, limitare l’accesso alle librerie e configurare il controllo parentale. Quick Connect consente di accedere dal televisore tramite un codice breve, senza digitare una password lunga.

Sono disponibili client per Android, iOS, Android TV, Roku, webOS, Tizen, Xbox e computer. È presente anche un’interfaccia web, oltre all’integrazione con Kodi.

Jellyfin supporta inoltre musica, IPTV, sintonizzatori TV e registrazione delle trasmissioni. SyncPlay sincronizza la riproduzione tra più utenti, mentre i plugin aggiungono sottotitoli, nuove fonti di metadati e integrazioni.

Jellyfin non cerca e non scarica film autonomamente. Organizza e trasmette soltanto i contenuti che il proprietario del server possiede già.

Jellyfin e Plex: le differenze principali

Entrambe le soluzioni trasformano una raccolta locale in un servizio multimediale, ma utilizzano modelli diversi.

ParametroJellyfinPlex
Codice sorgenteApertoProprietario
Funzioni premiumIl server e i client ufficiali non prevedono un livello a pagamentoAlcune funzioni dipendono dal piano
Account centraleNon richiestoUtilizza l’ecosistema del fornitore
Accesso remotoIl proprietario configura un dominio, un reverse proxy o una VPNOffre più meccanismi già pronti
Controllo sui datiMassimoUna parte dell’infrastruttura è controllata dal fornitore

Jellyfin viene scelto per l’indipendenza, la privacy e l’assenza di abbonamento. Plex può risultare più comodo quando le priorità sono una configurazione il più semplice possibile e applicazioni uniformemente curate su tutti i dispositivi.

Direct Play o transcodifica: cosa carica il server

Le prestazioni di Jellyfin dipendono meno dalle dimensioni della libreria che dal metodo di riproduzione.

ModalitàCosa accadeCarico
Direct PlayIl server trasmette il file originaleBasso
Direct StreamViene modificato il contenitore o una singola tracciaBasso o medio
TranscodingCodec, risoluzione o bitrate vengono modificati in tempo realeAlto

Se il televisore supporta il codec, l’audio e i sottotitoli del file, il server utilizza pochissima CPU. I problemi iniziano quando il client non riconosce il formato, la connessione richiede un bitrate inferiore oppure i sottotitoli devono essere incorporati nell’immagine. In questi casi Jellyfin avvia FFmpeg e transcodifica il video in tempo reale.

I contenuti 4K, HEVC, HDR e la conversione da HDR a SDR sono particolarmente impegnativi. Un normale VPS senza scheda video potrebbe non farcela, anche con molti core virtuali. Per questo, formati compatibili e Direct Play spesso fanno risparmiare più denaro rispetto al passaggio al piano superiore.

Quale server serve per Jellyfin

La raccomandazione ufficiale per un’installazione standard è di circa 8 GB di RAM. Su Linux senza interfaccia grafica, un piccolo server può funzionare con 4 GB. Un disco veloce è necessario per il sistema, il database, le immagini, la cache e i file temporanei; la mediateca viene archiviata separatamente e di solito occupa la maggior parte dello spazio.

ScenarioConfigurazione inizialeCommento
Musica e un flusso 1080p in Direct Play2 vCPU, 4 GB di RAMContano soprattutto la velocità della rete e del disco
Piccola mediateca familiare4 vCPU, 8 GB di RAMSono preferibili formati compatibili
Transcodifica occasionale in 1080p4–8 vCPU ad alte prestazioni o una GPUIl carico dipende dal codec
Più flussi 4K/HDRiGPU Intel moderna o scheda videoUn normale VPS con sola CPU non è adatto

Considera anche il traffico: un flusso da 20 Mbps trasferisce circa 9 GB di dati all’ora. Con una visione quotidiana, il consumo raggiunge rapidamente centinaia di gigabyte al mese.

Server domestico o VPS

Un mini PC o NAS domestico è più conveniente per una raccolta da diversi terabyte e per la transcodifica hardware frequente. È possibile installare dischi capienti e scegliere un processore con Intel Quick Sync, ma l’accesso remoto dipende dall’elettricità, dalla connessione Internet di casa e dalla disponibilità di un IP pubblico.

Un VPS dispone di un indirizzo pubblico, una connessione stabile e funziona 24 ore su 24. È pratico per la musica, una piccola videoteca, Direct Play e utenti in luoghi diversi. I suoi limiti sono il costo dello spazio su disco e l’assenza di GPU nei piani standard.

Esiste anche una soluzione ibrida: i file restano a casa, mentre il VPS viene utilizzato come punto di accesso protetto. Questa configurazione è utile in assenza di un IPv4 pubblico, ma la velocità di riproduzione rimane limitata dalla banda in upload della connessione domestica.

Installazione di Jellyfin su Ubuntu con Docker Compose

Nella configurazione seguente, Jellyfin e Caddy vengono eseguiti sulla stessa rete Docker. La porta 8096 non viene esposta a Internet; Caddy accetta le connessioni HTTPS e ottiene automaticamente un certificato.

Per prima cosa, fai puntare il record A del dominio, ad esempio media.example.com, all’indirizzo IP del server.

1. Installa Docker e crea le directory

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:

Il parametro :ro monta la mediateca in sola lettura e protegge i file originali da eliminazioni accidentali tramite Jellyfin.

3. Crea /opt/jellyfin/Caddyfile

media.example.com {
    reverse_proxy jellyfin:8096
}

Sostituisci il dominio con il tuo, avvia i container e apri le porte necessarie:

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

Se SSH utilizza una porta diversa, consentila con una regola separata prima di eseguire ufw enable.

Dopo l’emissione del certificato, apri https://media.example.com. Nelle impostazioni di rete di Jellyfin, aggiungi il reverse proxy all’elenco dei proxy attendibili affinché le restrizioni per l’accesso esterno funzionino correttamente.

Configurazione iniziale della mediateca

Nella procedura guidata, seleziona la lingua, crea un amministratore e aggiungi le librerie:

  • film — /media/movies;
  • serie TV — /media/series;
  • musica — /media/music.

Utilizza nomi chiari per garantire un riconoscimento preciso:

/media/movies/Titolo del film (2024)/Titolo del film (2024).mkv
/media/series/Titolo della serie (2024)/Season 01/Titolo della serie S01E01.mkv

Crea un profilo standard separato per la visione e nascondi l’account amministratore dalla schermata di accesso. Concedi agli utenti soltanto le librerie necessarie e non consentire l’eliminazione dei file se non è indispensabile.

Aggiornamenti e backup

La configurazione di Jellyfin contiene utenti, impostazioni, database e avanzamento della riproduzione. Prima di un aggiornamento, arresta il container e salva la directory 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

Trasferisci l’archivio fuori dal VPS. I file multimediali devono essere sottoposti a backup separatamente.

Per aggiornare, esegui:

sudo docker compose pull
sudo docker compose up -d

Non esporre direttamente la porta 8096. Utilizza HTTPS o una VPN, installa regolarmente gli aggiornamenti e controlla lo spazio libero sul disco.

Jellyfin su un VPS di tropic.host

Per una piccola mediateca che utilizza soprattutto Direct Play, puoi iniziare con un VPS Linux dotato di 4 GB di RAM. Per più utenti, un database grande e servizi aggiuntivi, è più ragionevole scegliere 8 GB.

Quando scegli un VPS su tropic.host, valuta separatamente lo spazio su disco, il traffico mensile e la necessità di transcodifica. Un server virtuale è pratico come punto di accesso sempre disponibile con IP pubblico e HTTPS, ma non sostituisce un server con GPU. Se servono più flussi 4K/HDR con conversione del formato, è preferibile usare un server domestico con iGPU Intel, un server dedicato o un piano specializzato con scheda video.

Puoi iniziare con una piccola raccolta, controllare nel pannello di Jellyfin la percentuale di sessioni Direct Play e soltanto dopo aumentare CPU, RAM o spazio di archiviazione in base al carico effettivo.

Conclusione

Jellyfin trasforma la propria raccolta in un servizio di streaming personale senza abbonamento obbligatorio né account centrale. Per un’installazione riuscita è importante stimare in anticipo lo spazio di archiviazione, il traffico e la probabilità di transcodifica.

Per un piccolo server con Direct Play sono spesso sufficienti 4–8 GB di RAM. La riproduzione regolare di contenuti 4K/HDR richiede l’elaborazione video hardware. Indipendentemente dalla configurazione, proteggi l’accesso esterno con HTTPS o una VPN ed esegui backup separati delle impostazioni e della mediateca.

FAQ

Jellyfin è completamente gratuito?

Sì. Il server e i client sono disponibili senza un piano premium. È necessario pagare soltanto l’hardware, il VPS, i dischi, il dominio e il traffico.

Jellyfin include film e serie TV già pronti?

No. L’utente aggiunge autonomamente i propri file multimediali.

È possibile eseguire Jellyfin su un VPS senza scheda video?

Sì, se la maggior parte dei file viene riprodotta tramite Direct Play. La transcodifica frequente di contenuti 4K e HDR richiede un server con una iGPU adeguata o una scheda video.

Quanta RAM serve a Jellyfin?

Un piccolo server Linux può funzionare con 4 GB di RAM. Per una mediateca familiare e più utenti è meglio orientarsi su 8 GB.

Come si può usare Jellyfin in modo sicuro tramite Internet?

Utilizza un dominio e HTTPS tramite un reverse proxy oppure una VPN. Non esporre direttamente la porta 8096 e crea account utente separati con autorizzazioni minime.