Ospitare Owncast su un VPS gestito significa trasmettere le vostre dirette video e animarne la chat da una macchina tutta vostra, che i nostri team tengono aggiornata e supervisionano giorno e notte. Owncast è un software libero con licenza MIT. Questa guida segue la sua documentazione ufficiale: la CPU e la banda da prevedere, l'installazione con Docker Compose, la chiave di trasmissione, HTTPS, le qualità video, lo storage a oggetti, la chat, i backup e gli aggiornamenti.
Di Simon Vasconcelos Lee
Pubblicato il 14 novembre 2026Lettura: 15 minuti
owncast/owncast, che include ffmpeg, la porta web 8080 dietro un reverse proxy in HTTPS, e la porta RTMP 1935 per il vostro software di trasmissione.abc123 per impostazione predefinita.data fuori dal server per un ripristino completo, e aggiornate con docker compose pull.Owncast è un server di dirette video e di chat open source, self-hosted e a utente singolo: un'istanza porta il canale di una sola persona o organizzazione. Il suo README lo presenta come un modo di gestire le proprie dirette, sul modello delle grandi piattaforme più diffuse, restando proprietari dei propri contenuti, della propria interfaccia, della propria moderazione e del proprio pubblico.
/hls/stream.m3u8.Owncast è pubblicato con la licenza MIT. Concede gratuitamente il diritto di usare, copiare, modificare, unire, pubblicare, distribuire, concedere in sublicenza e vendere copie del software. Potete quindi farlo girare per la vostra azienda, la vostra comunità o i vostri clienti, senza alcuna licenza da acquistare.
L'unica condizione è conservare l'avviso di copyright e il testo della licenza in tutte le copie o le parti sostanziali del software. Il testo fornisce il software «così com'è», senza garanzia.
La documentazione lo dice fin dall'inizio: i requisiti dipendono dalla vostra configurazione. Fissa però una regola chiara per stimarli. La CPU transcodifica il video nelle qualità che proponete; la banda lo consegna a ogni spettatore.
La documentazione fornisce due formule. Il volume di una diretta, in gigabyte: bitrate in kbps × durata in secondi × spettatori ÷ 8.000.000. La velocità in uscita di picco da sostenere, in Mbps: bitrate in kbps × spettatori ÷ 1.000. Con più qualità, calcolate ciascuna e sommatele. Le sue stime per una diretta di due ore:
| Bitrate del flusso | 10 spettatori | 25 spettatori | 50 spettatori |
|---|---|---|---|
| 2.000 kbps | 18 GB, 20 Mbps | 45 GB, 50 Mbps | 90 GB, 100 Mbps |
| 4.000 kbps | 36 GB, 40 Mbps | 90 GB, 100 Mbps | 180 GB, 200 Mbps |
| 6.000 kbps | 54 GB, 60 Mbps | 135 GB, 150 Mbps | 270 GB, 300 Mbps |
Su un VPS Simafri, il traffico non ha un contatore mensile: le vostre dirette si dimensionano sul loro bitrate di picco. Man mano che il pubblico cresce, lo storage a oggetti, trattato più avanti, serve il video al posto del server.
La documentazione fornisce punti di riferimento misurati, precisando che variano con il codec, il bitrate, la risoluzione e il preset dell'encoder:
| Configurazione | Carico della CPU |
|---|---|
| Una sola qualità in passthrough, senza ricodifica | Minimo |
| Una sola qualità transcodificata | Leggero |
| Due qualità, alta e bassa | Moderato |
| Tre qualità, oppure una compressione spinta | Elevato |
La documentazione non indica alcun valore di memoria, e il disco conta poco: i segmenti video vengono scritti e poi eliminati man mano che la diretta procede. Solo la cartella data cresce nel tempo. Su un VPS, è la CPU a fare la codifica: ogni qualità transcodificata si dimensiona in vCPU. Su un VPS gestito, parlateci delle vostre dirette, del loro bitrate, delle loro qualità e del vostro pubblico, e vi raccomandiamo la taglia adatta.
Prima di raggiungere il server, il flusso parte dalla vostra connessione. La documentazione chiede una velocità di upload di almeno 1,5 volte il bitrate del flusso: 7,5 Mbps per un flusso a 5.000 kbps. Raccomanda una connessione via cavo anziché il Wi-Fi.
La documentazione propone l'immagine owncast/owncast su Docker Hub, che include ffmpeg, lo strumento di codifica di cui Owncast ha bisogno. Su un server in cui Docker è installato, create una cartella e collocatevi questo compose.yaml, tratto dalla documentazione:
services:
owncast:
image: owncast/owncast:latest
restart: unless-stopped
ports:
- "127.0.0.1:8080:8080"
- "1935:1935"
volumes:
- ./data:/app/data
docker compose up -d
127.0.0.1: è l'unica modifica rispetto all'esempio della documentazione, che pubblica entrambe le porte. La sua pagina sui reverse proxy chiede di non esporre Owncast su Internet, perché per impostazione predefinita ascolta su tutte le interfacce, e Docker pubblica una porta su tutti gli indirizzi del server quando non gliene viene indicato nessuno. L'interfaccia web si raggiunge allora solo tramite il reverse proxy.data conserva il database e i suoi backup sul server, fuori dal container: è ciò che salvate e spostate.latest segue la versione più recente; 0.3.0 fissa una versione.L'altra strada della documentazione è uno script che scarica l'ultima versione di Owncast per la vostra piattaforma, e ffmpeg se non è già presente. Installa tutto in una cartella owncast sotto quella corrente. La documentazione sconsiglia di lanciarlo come root e raccomanda di leggere qualsiasi script remoto prima di eseguirlo:
curl -s https://owncast.online/install.sh | bash
Perché Owncast parta con il server e si riavvii da solo dopo un arresto anomalo, la documentazione fornisce un servizio systemd, da adattare alla cartella e all'account che avete scelto:
[Unit]
Description=Owncast
After=network.target
[Service]
Type=simple
WorkingDirectory=/opt/owncast
ExecStart=/opt/owncast/owncast
User=owncast
Group=owncast
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable --now owncast
L'amministrazione si trova su /admin. Owncast parte con credenziali note a tutti, che la documentazione chiede di cambiare al primo accesso:
| Impostazione | Valore predefinito | A che cosa serve |
|---|---|---|
| Nome utente di amministrazione | admin | L'accesso a /admin |
| Password di amministrazione | abc123 | L'accesso a /admin |
| Chiave di trasmissione | abc123 | La pubblicazione del flusso dal vostro software di trasmissione |
Per fare questa modifica prima che l'interfaccia sia aperta al pubblico, passate da un tunnel SSH: la porta 8080 del server compare sul vostro computer, su http://localhost:8080/admin. Aggiungete -p e la porta SSH indicata nella vostra area clienti.
ssh -L 8080:127.0.0.1:8080 user@live.example.com
!@#$%^&*, e nessun trattino.--adminpassword, che la registra nel database.La password di amministrazione e la chiave di trasmissione valgono entrambe abc123 all'inizio, ma sono due impostazioni distinte: cambiatele entrambe.
Owncast non gestisce HTTPS da solo. La documentazione gli pone davanti un reverse proxy, che ascolta sulle porte 80 e 443, ottiene il certificato, cifra il traffico e lo inoltra in chiaro a Owncast sulla porta 8080. Senza HTTPS, i browser segnalano la pagina come non sicura, e una pagina servita in HTTPS non può incorporare il vostro video né la vostra chat.
/ws, che trasporta la chat. Un proxy che la blocca interrompe la chat.X-Forwarded-For per bloccare l'indirizzo IP di un utente bannato dalla chat. La documentazione chiede che sia il proxy stesso a impostare questa intestazione.La documentazione suggerisce Caddy se non avete altre preferenze: ottiene da solo un certificato Let's Encrypt e inoltra WebSocket senza impostazioni aggiuntive. Ecco il suo esempio di Caddyfile, in cui la riga tls indica l'indirizzo e-mail dell'account Let's Encrypt:
live.example.com {
encode gzip
reverse_proxy 127.0.0.1:8080
tls contact@example.com
}
Con Nginx, la documentazione insiste su WebSocket: dimenticarlo è ciò che disattiva la chat. Aggiungete questo blocco map alla sezione http di /etc/nginx/nginx.conf:
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
Questo blocco del sito segue quello della documentazione, sulla porta 80 per lasciare a Certbot l'attivazione di HTTPS:
server {
listen 80;
listen [::]:80;
server_name live.example.com;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Authorization $http_authorization;
proxy_pass_header Authorization;
proxy_pass http://127.0.0.1:8080;
}
}
sudo nginx -t
sudo certbot --nginx
Owncast accetta qualsiasi software che trasmetta in RTMP verso un server remoto. La chiave è accettata solo sul percorso /live. In OBS:
rtmp://live.example.com:1935/live.Un software senza un campo per la chiave accetta l'indirizzo completo, rtmp://live.example.com:1935/live/your-key.
Su un VPS Simafri, l'indirizzo IPv6 del server può aprire qualsiasi porta scegliate: il vostro software di trasmissione raggiunge la porta 1935 tramite quell'indirizzo, con un nome che porta il record AAAA. Su una rete Docker IPv4, come qui, Docker inoltra al container la porta dell'indirizzo IPv6 del server. Aprite quella porta se ufw è attivo, poi provate dal vostro computer:
sudo ufw allow 1935/tcp
nc -6 -vz live.example.com 1935
Per qualsiasi altra esigenza, diteci che cosa avete in mente e studiamo con voi l'indirizzamento.
2.| Risoluzione | Fotogrammi al secondo | Bitrate suggerito |
|---|---|---|
| 1920 × 1080 | 60 | 5.000 kbps |
| 1920 × 1080 | 30 | 4.500 kbps |
| 1280 × 720 | 60 | 4.000 kbps |
| 1280 × 720 | 30 | 3.000 kbps |
Le qualità proposte agli spettatori si impostano in «Configuration», «Video». Più qualità permettono al lettore di scegliere quella che la sua connessione può sostenere: la documentazione raccomanda una seconda qualità, da 1.000 a 2.000 kbps, accanto a una qualità alta da 4.000 a 6.000 kbps, una volta provata la vostra prima configurazione.
Il passthrough trasmette il video in ingresso senza ricodificarlo: risparmia quasi tutta la CPU di quella qualità, e ne ignora le impostazioni di bitrate, risoluzione e frequenza dei fotogrammi. La documentazione lo riserva agli utenti esperti: gli spettatori ricevono esattamente ciò che invia il vostro software, che alcuni lettori non riescono a riprodurre, e la latenza aumenta. Provate la riproduzione sui dispositivi che contano per voi prima di farvi affidamento.
La latenza si regola con il buffer di latenza, nella stessa pagina. Ogni livello scambia un po' di ritardo con la stabilità, e una modifica si applica dalla diretta successiva:
| Livello | Durata dei segmenti | Segmenti nella playlist | Latenza approssimativa |
|---|---|---|---|
| 0, il più basso | 1 secondo | 25 | circa 5 secondi |
| 1 | 2 secondi | 15 | circa 8 o 9 secondi |
| 2, predefinito | 3 secondi | 10 | circa 10 secondi |
| 3 | 4 secondi | 8 | circa 15 secondi |
| 4, il più alto | 5 secondi | 5 | circa 18 secondi |
La versione 0.3.0 aggiunge anche, lato spettatore, l'opzione «Minimize latency» del lettore, che accelera leggermente la riproduzione per avvicinarsi alla diretta, e un'impostazione di riproduzione automatica, disattivata per impostazione predefinita.
Owncast può inviare i suoi segmenti video a uno storage compatibile S3, da cui gli spettatori li scaricano. Il server continua a servire la playlist principale, le API e la chat; il video, che rappresenta quasi tutta la banda, arriva dallo storage. Il vostro server invia allora una sola copia di ogni qualità: nell'esempio della documentazione, 6,5 Mbps per due qualità a 5.000 e 1.500 kbps, che abbiate zero spettatori o mille. Il carico della CPU resta lo stesso.
CORS o Access-Control-Allow-Origin nella console del browser deriva quasi sempre da lì.Questo storage serve la diretta, non un archivio: Owncast elimina man mano i segmenti più vecchi della playlist più un margine di circa 20 segmenti. Il bucket contiene solo gli ultimi minuti della diretta.
Per spettatori sparsi in tutto il mondo, la documentazione descrive anche una rete di distribuzione dei contenuti (CDN) posta davanti a Owncast, con un nome host di origine separato e l'impostazione «Websocket host override», che mantiene la chat collegata al server di origine.
La chat si imposta in «Configuration», «Chat». Per impostazione predefinita non ci sono moderatori: la documentazione suggerisce almeno di nominare voi stessi, dalla pagina «Users» dell'amministrazione.
La documentazione ricorda che il blocco per IP si può aggirare, con una VPN per esempio: riduce gli abusi, e la moderazione resta il lavoro proprio di ogni canale. Da qui l'utilità di moderatori designati per le vostre dirette più seguite.
Owncast salva da solo il proprio database una volta all'ora, in data/backup/owncastdb.bak. L'opzione --backupdir cambia questa cartella. Ecco che cosa contiene la cartella dei dati:
| Elemento | Che cosa conserva | Nel backup orario |
|---|---|---|
owncast.db | Configurazione, utenti, cronologia della chat e token di accesso | Sì |
backup/ | Il backup orario del database | È il backup stesso |
Emoji personalizzate, public/ | I file che avete aggiunto | No |
| Plugin | I plugin installati e i loro dati, dalla 0.3.0 | No |
| Dati GeoIP | La provenienza delle connessioni degli spettatori | No |
Per un ripristino completo, o per spostare l'istanza, la documentazione chiede di salvare l'intera cartella data: copiarla in una nuova installazione porta con sé tutto. Con Docker, a servizio fermo:
docker compose down
tar -czf owncast-$(date +%F).tar.gz data
docker compose up -d
Pianificate questa copia in base alle vostre dirette, e inviatela fuori dal server. Collocati sul suo disco, questi archivi rientrano anche nei suoi backup notturni.
Un ripristino riporta il database al momento del backup: tutto ciò che è cambiato da allora va perso. Copiate prima il database attuale in un luogo sicuro, poi:
--restoreDatabase e il percorso del file di backup: ripristina il database, poi si chiude.docker compose stop
docker compose run --rm owncast --restoreDatabase data/backup/owncastdb.bak
docker compose up -d
Con Docker, la documentazione fornisce due comandi, da lanciare dalla cartella del compose.yaml. La cartella dei dati resta al suo posto:
docker compose pull
docker compose up -d
Con l'installer, le note di rilascio della 0.3.0 descrivono l'aggiornamento: fermate il servizio, mettete da parte i file dell'interfaccia web che avete personalizzato, rilanciate l'installer con l'account che fa girare Owncast, poi riavviate. Lo script stesso conserva un archivio della cartella data in owncast-install-backups prima di sostituire la versione.
sudo systemctl stop owncast
su -c "curl https://owncast.online/install.sh | bash" owncast
sudo systemctl start owncast
La versione 0.3.0, uscita il 3 settembre 2026, porta i plugin, i Featured Streams, la riproduzione automatica e la scelta dell'interfaccia su cui ascolta RTMP. Le sue note chiedono di leggere le modifiche prima di aggiornare, perché riguardano la vostra istanza: seguite queste note a ogni versione, e copiate la cartella data subito prima.
Il self-hosting richiede di occuparsi del server oltre che dell'applicazione. Su un VPS gestito, i nostri team prendono in carico il server e seguono la vostra istanza in modo proattivo; Owncast resta il vostro software, con le sue impostazioni e i suoi dati.
| Argomento | I nostri team | Voi |
|---|---|---|
| Il server | Aggiornamenti del sistema e della sicurezza, interventi sul server compresi | Il momento più adatto alla vostra attività |
| La supervisione | Server seguito 24 ore su 24, 7 giorni su 7, con intervento senza attendere la vostra chiamata | La lettura dei log della vostra istanza |
| Owncast | Monitoraggio proattivo: errori, rallentamenti, carico della CPU e spazio su disco individuati, correzione raccomandata | La sua installazione, i suoi aggiornamenti e le sue impostazioni, che applicate voi o il vostro assistente IA |
| Le dirette e la chat | Il server che le ospita, sorvegliato e salvato | Le chiavi di trasmissione, le qualità video, i moderatori e le regole della chat |
| I backup | Ogni notte, cifrati e conservati fuori dalla macchina; ripristino compreso | Le copie proprie di Owncast e la richiesta di ripristino, quando ne avete bisogno |
| La migrazione | Il vostro server attuale migrato, in omaggio | Il momento del passaggio |
Se preferite che i nostri team intervengano nell'applicazione stessa, questa prestazione si fattura a ore o a forfait, con un preventivo comunicato prima dell'intervento.
Con un VPS gestito Simafri, i nostri team tengono aggiornato il server della vostra istanza Owncast, lo sorvegliano giorno e notte e intervengono senza attendere la vostra chiamata; seguono anche la vostra istanza in modo proattivo e vi raccomandano le correzioni utili, che applicate voi o il vostro assistente IA. I backup sono cifrati ogni notte e conservati fuori dalla macchina, il loro ripristino è compreso e la migrazione del vostro server attuale è in omaggio.
Sì. Owncast ha licenza MIT: potete usarlo, modificarlo e ridistribuirlo in azienda senza alcuna licenza da acquistare, a condizione di conservarne l'avviso di copyright. Resta il costo del server che lo fa girare.
Dipende dalle qualità che proponete. Come regola empirica, la documentazione conta un core per qualità transcodificata a 30 fotogrammi al secondo, e quasi nulla per una qualità in passthrough. Il numero di spettatori non cambia il carico della CPU.
La velocità di picco è pari al bitrate del flusso moltiplicato per il numero di spettatori: 25 spettatori a 5.000 kbps richiedono 125 Mbps in uscita. Uno storage a oggetti compatibile S3 può servire il video al posto del server, che invia allora una sola copia di ogni qualità.
Create un compose.yaml con l'immagine owncast/owncast, la porta 8080 pubblicata su 127.0.0.1, la porta 1935 per RTMP e una cartella data montata su /app/data, poi lanciate docker compose up -d. Collocate quindi un reverse proxy in HTTPS davanti alla porta 8080.
L'amministrazione, su /admin, si apre con il nome utente admin e la password abc123, e anche la chiave di trasmissione vale abc123. Sono due impostazioni distinte: cambiatele entrambe al primo accesso, in Configuration, Server Setup.
In OBS, scegliete un servizio personalizzato, inserite rtmp://your-server:1935/live e la vostra chiave di trasmissione. Inviate video H.264 e audio AAC, con un fotogramma chiave ogni 2 secondi.
Owncast salva il proprio database ogni ora in data/backup/owncastdb.bak. Questo backup copre solo il database: per un ripristino completo, copiate l'intera cartella data fuori dal server. Il ripristino si fa con l'opzione --restoreDatabase.
Un VPS gestito copre il server: sistema, sicurezza, supervisione e backup. I nostri team seguono anche la vostra istanza in modo proattivo e vi raccomandano le correzioni utili, che applicate voi. Un intervento nell'applicazione si fattura a ore o a forfait.
Simafri
Parliamo del vostro progetto
Diteci in due parole ciò che vi serve: vi rispondiamo rapidamente.
Grazie! La tua richiesta è stata inviata. Ti risponderemo a breve.
Preferite l'email? Scriveteci a support@simafri.com.