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.
| Parametro | Jellyfin | Plex |
|---|---|---|
| Codice sorgente | Aperto | Proprietario |
| Funzioni premium | Il server e i client ufficiali non prevedono un livello a pagamento | Alcune funzioni dipendono dal piano |
| Account centrale | Non richiesto | Utilizza l’ecosistema del fornitore |
| Accesso remoto | Il proprietario configura un dominio, un reverse proxy o una VPN | Offre più meccanismi già pronti |
| Controllo sui dati | Massimo | Una 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 accade | Carico |
|---|---|---|
| Direct Play | Il server trasmette il file originale | Basso |
| Direct Stream | Viene modificato il contenitore o una singola traccia | Basso o medio |
| Transcoding | Codec, risoluzione o bitrate vengono modificati in tempo reale | Alto |
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.
| Scenario | Configurazione iniziale | Commento |
|---|---|---|
| Musica e un flusso 1080p in Direct Play | 2 vCPU, 4 GB di RAM | Contano soprattutto la velocità della rete e del disco |
| Piccola mediateca familiare | 4 vCPU, 8 GB di RAM | Sono preferibili formati compatibili |
| Transcodifica occasionale in 1080p | 4–8 vCPU ad alte prestazioni o una GPU | Il carico dipende dal codec |
| Più flussi 4K/HDR | iGPU Intel moderna o scheda video | Un 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/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: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 enableSe 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.mkvCrea 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 jellyfinTrasferisci 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 -dNon 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.
