Hospedar o Owncast em um VPS gerenciado é transmitir seus vídeos ao vivo e conduzir o chat deles a partir de uma máquina própria, que nossas equipes mantêm atualizada e supervisionam dia e noite. O Owncast é um software livre sob a licença MIT. Este guia segue a documentação oficial dele: a CPU e a banda a prever, a instalação com Docker Compose, a chave de transmissão, o HTTPS, as qualidades de vídeo, o armazenamento de objetos, o chat, os backups e as atualizações.
Por Simon Vasconcelos Lee
Publicado em 14 de novembro de 2026Leitura: 15 minutos
owncast/owncast, que traz o ffmpeg, a porta web 8080 atrás de um proxy reverso em HTTPS e a porta RTMP 1935 para seu software de transmissão.abc123 por padrão.data inteira para fora do servidor para uma recuperação completa e atualize com docker compose pull.O Owncast é um servidor de vídeo ao vivo e de chat de código aberto, auto-hospedado e de usuário único: uma instância leva o canal de uma pessoa ou de uma organização. O README dele o apresenta como uma forma de conduzir suas próprias transmissões ao vivo, no estilo das grandes plataformas populares, mantendo a propriedade de seu conteúdo, de sua interface, de sua moderação e de seu público.
/hls/stream.m3u8.O Owncast é publicado sob a licença MIT. Ela concede gratuitamente o direito de usar, copiar, modificar, fundir, publicar, distribuir, sublicenciar e vender cópias do software. Você pode, portanto, rodá-lo para sua empresa, sua comunidade ou seus clientes, sem licença a comprar.
A única condição é manter o aviso de copyright e o texto da licença em todas as cópias ou partes substanciais do software. O texto fornece o software “no estado em que se encontra”, sem garantia.
A documentação avisa logo de início: as necessidades dependem de sua configuração. Ela fixa, no entanto, uma regra clara para estimá-las. A CPU transcodifica o vídeo nas qualidades que você oferece; a banda o entrega a cada espectador.
A documentação dá duas fórmulas. O volume de uma transmissão, em gigabytes: taxa de bits em kbps × duração em segundos × espectadores ÷ 8.000.000. A velocidade de saída de pico a sustentar, em Mbps: taxa de bits em kbps × espectadores ÷ 1.000. Com várias qualidades, calcule cada uma e some. As estimativas dela para uma transmissão de duas horas:
| Taxa de bits do fluxo | 10 espectadores | 25 espectadores | 50 espectadores |
|---|---|---|---|
| 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 |
Em um VPS Simafri, o tráfego não tem contador mensal: suas transmissões se dimensionam pela taxa de bits de pico. À medida que seu público cresce, o armazenamento de objetos, tratado mais adiante, serve o vídeo no lugar do servidor.
A documentação dá referências medidas, lembrando que elas variam com o codec, a taxa de bits, a resolução e a predefinição do codificador:
| Configuração | Carga da CPU |
|---|---|
| Uma única qualidade em passthrough, sem recodificação | Mínima |
| Uma única qualidade transcodificada | Leve |
| Duas qualidades, alta e baixa | Moderada |
| Três qualidades, ou uma compressão forte | Pesada |
A documentação não informa números de memória, e o disco pesa pouco: os segmentos de vídeo são gravados e depois removidos à medida que a transmissão avança. Só a pasta data cresce com o tempo. Em um VPS, é a CPU que faz a codificação: cada qualidade transcodificada se dimensiona em vCPUs. Em um VPS gerenciado, fale-nos de suas transmissões, da taxa de bits delas, das qualidades e de seu público, e recomendamos o tamanho adequado.
Antes de chegar ao servidor, o fluxo sai de sua própria conexão. A documentação pede uma velocidade de upload de pelo menos 1,5 vez a taxa de bits do fluxo: 7,5 Mbps para um fluxo de 5.000 kbps. Ela recomenda uma conexão por cabo em vez do Wi-Fi.
A documentação propõe a imagem owncast/owncast do Docker Hub, que inclui o ffmpeg, a ferramenta de codificação de que o Owncast precisa. Em um servidor com o Docker instalado, crie uma pasta e coloque nela este compose.yaml, extraído da documentação:
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: é a única mudança em relação ao exemplo da documentação, que publica as duas portas. A página dela sobre o proxy reverso pede para manter o Owncast fora da internet, pois ele escuta em todas as interfaces por padrão, e o Docker publica uma porta em todos os endereços do servidor quando não recebe nenhum. A interface web passa então a ser acessada apenas pelo proxy reverso.data guarda o banco e os backups dele no servidor, fora do contêiner: é ela que você salva e transfere.latest acompanha a versão mais recente; 0.3.0 fixa uma versão.O outro caminho da documentação é um script que baixa a última versão do Owncast para sua plataforma, e o ffmpeg se ele ainda não estiver presente. Ele instala tudo em uma pasta owncast dentro da pasta atual. A documentação desaconselha executá-lo como root e recomenda ler qualquer script remoto antes de executá-lo:
curl -s https://owncast.online/install.sh | bash
Para que o Owncast inicie com o servidor e reinicie sozinho após uma falha, a documentação fornece um serviço systemd, a adaptar à pasta e à conta escolhidas:
[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
A administração fica em /admin. O Owncast inicia com credenciais que todo mundo conhece, e a documentação pede para mudá-las no primeiro login:
| Configuração | Valor padrão | Para que serve |
|---|---|---|
| Usuário de administração | admin | O login em /admin |
| Senha de administração | abc123 | O login em /admin |
| Chave de transmissão | abc123 | A publicação do fluxo a partir de seu software de transmissão |
Para fazer essa mudança antes de a interface ficar aberta ao público, passe por um túnel SSH: a porta 8080 do servidor aparece em seu computador, em http://localhost:8080/admin. Acrescente -p e a porta SSH indicada em sua área de cliente.
ssh -L 8080:127.0.0.1:8080 user@live.example.com
!@#$%^&*, e nenhum hífen.--adminpassword, que a grava no banco.A senha de administração e a chave de transmissão começam ambas como abc123, mas são duas configurações distintas: mude as duas.
O Owncast não cuida ele mesmo do HTTPS. A documentação coloca na frente dele um proxy reverso, que escuta nas portas 80 e 443, obtém o certificado, criptografa o tráfego e o repassa sem criptografia ao Owncast na porta 8080. Sem HTTPS, os navegadores marcam a página como não segura, e uma página servida em HTTPS não consegue incorporar seu vídeo nem seu chat.
/ws, que leva o chat. Um proxy que a bloqueia corta o chat.X-Forwarded-For para bloquear o endereço IP de um usuário banido do chat. A documentação pede que o próprio proxy defina esse cabeçalho.A documentação sugere o Caddy se você não tem outra preferência: ele obtém sozinho um certificado Let's Encrypt e repassa o WebSocket sem configuração extra. Veja o exemplo de Caddyfile dela, em que a linha tls informa o endereço de e-mail da conta Let's Encrypt:
live.example.com {
encode gzip
reverse_proxy 127.0.0.1:8080
tls contact@example.com
}
Com o Nginx, a documentação insiste no WebSocket: é esquecê-lo que desativa o chat. Acrescente este bloco map à seção http de /etc/nginx/nginx.conf:
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
Este bloco de site retoma o da documentação, na porta 80 para deixar o Certbot instalar o 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
O Owncast aceita qualquer software que transmita em RTMP para um servidor remoto. A chave só é aceita no caminho /live. No OBS:
rtmp://live.example.com:1935/live.Um software sem campo para a chave aceita o endereço completo, rtmp://live.example.com:1935/live/your-key.
Em um VPS Simafri, o endereço IPv6 do servidor pode abrir a porta que você escolher: seu software de transmissão alcança a porta 1935 por esse endereço, em um nome que leva o registro AAAA. Em uma rede Docker IPv4, como aqui, o Docker encaminha a porta do endereço IPv6 do servidor para o contêiner. Abra essa porta se o ufw estiver ativo e teste a partir de seu computador:
sudo ufw allow 1935/tcp
nc -6 -vz live.example.com 1935
Para qualquer outra necessidade, conte-nos o que você tem em mente e examinamos o endereçamento com você.
2.| Resolução | Quadros por segundo | Taxa de bits sugerida |
|---|---|---|
| 1920 × 1080 | 60 | 5.000 kbps |
| 1920 × 1080 | 30 | 4.500 kbps |
| 1280 × 720 | 60 | 4.000 kbps |
| 1280 × 720 | 30 | 3.000 kbps |
As qualidades oferecidas aos espectadores são configuradas em “Configuration”, “Video”. Várias qualidades permitem ao player escolher a que a conexão dele consegue sustentar: a documentação recomenda uma segunda qualidade, de 1.000 a 2.000 kbps, ao lado de uma qualidade alta de 4.000 a 6.000 kbps, depois de testada sua primeira configuração.
O passthrough repassa o vídeo recebido sem recodificá-lo: ele economiza quase toda a CPU dessa qualidade e ignora as configurações de taxa de bits, de resolução e de taxa de quadros dela. A documentação o reserva aos usuários avançados: os espectadores recebem exatamente o que seu software envia, o que alguns players não conseguem reproduzir, e a latência aumenta. Teste a reprodução nos dispositivos que importam para você antes de contar com ele.
A latência se ajusta pelo buffer de latência, na mesma página. Cada nível troca um pouco de atraso por estabilidade, e uma mudança vale a partir da próxima transmissão:
| Nível | Duração de um segmento | Segmentos na playlist | Latência aproximada |
|---|---|---|---|
| 0, o mais baixo | 1 segundo | 25 | cerca de 5 segundos |
| 1 | 2 segundos | 15 | cerca de 8 a 9 segundos |
| 2, padrão | 3 segundos | 10 | cerca de 10 segundos |
| 3 | 4 segundos | 8 | cerca de 15 segundos |
| 4, o mais alto | 5 segundos | 5 | cerca de 18 segundos |
A versão 0.3.0 também acrescenta, do lado do espectador, a opção “Minimize latency” do player, que acelera ligeiramente a reprodução para se aproximar do ao vivo, e uma configuração de reprodução automática, desativada por padrão.
O Owncast pode enviar os segmentos de vídeo para um armazenamento compatível com S3, de onde os espectadores os baixam. O servidor continua servindo a playlist principal, as APIs e o chat; o vídeo, que representa quase toda a banda, vem do armazenamento. Seu servidor envia então uma única cópia de cada qualidade: no exemplo da documentação, 6,5 Mbps para duas qualidades a 5.000 e 1.500 kbps, com zero espectadores ou com mil. A carga da CPU continua a mesma.
CORS ou Access-Control-Allow-Origin no console do navegador quase sempre vem daí.Esse armazenamento serve o ao vivo, não um arquivo: o Owncast exclui, à medida que avança, os segmentos mais antigos que a playlist mais uma margem de cerca de 20 segmentos. O bucket guarda apenas os últimos minutos da transmissão.
Para espectadores espalhados pelo mundo, a documentação também descreve uma rede de distribuição de conteúdo (CDN) colocada na frente do Owncast, com um nome de host de origem distinto e a configuração “Websocket host override”, que mantém o chat conectado ao servidor de origem.
O chat é configurado em “Configuration”, “Chat”. Por padrão, não há nenhum moderador: a documentação sugere ao menos nomear você mesmo, a partir da página “Users” da administração.
A documentação lembra que o bloqueio por IP pode ser contornado, com uma VPN, por exemplo: ele reduz os abusos, e a moderação continua sendo o trabalho próprio de cada canal. Daí o valor de moderadores nomeados para suas transmissões mais assistidas.
O Owncast faz backup do próprio banco uma vez por hora, em data/backup/owncastdb.bak. A opção --backupdir muda essa pasta. Veja o que a pasta de dados contém:
| Elemento | O que ele guarda | No backup de hora em hora |
|---|---|---|
owncast.db | A configuração, os usuários, o histórico do chat e os tokens de acesso | Sim |
backup/ | O backup do banco de hora em hora | É o próprio backup |
Os emojis personalizados, public/ | Os arquivos que você acrescentou | Não |
| Os plugins | Os plugins instalados e os dados deles, desde a 0.3.0 | Não |
| Os dados GeoIP | De onde os espectadores se conectam | Não |
Para uma recuperação completa, ou para transferir a instância, a documentação pede para salvar a pasta data inteira: copiá-la em uma nova instalação leva tudo junto. Com o Docker, com o serviço parado:
docker compose down
tar -czf owncast-$(date +%F).tar.gz data
docker compose up -d
Agende essa cópia de acordo com suas transmissões e envie-a para fora do servidor. Colocados no disco dele, esses arquivos também entram nos backups noturnos dele.
Uma restauração leva o banco de volta ao momento do backup: tudo o que mudou desde então se perde. Copie primeiro o banco atual em um lugar seguro e depois:
--restoreDatabase e o caminho do arquivo de backup: ele restaura o banco e encerra.docker compose stop
docker compose run --rm owncast --restoreDatabase data/backup/owncastdb.bak
docker compose up -d
Com o Docker, a documentação dá dois comandos, executados a partir da pasta do compose.yaml. A pasta de dados continua no lugar:
docker compose pull
docker compose up -d
Com o instalador, as notas da versão 0.3.0 descrevem a atualização: pare o serviço, separe os arquivos da interface web que você tiver personalizado, execute de novo o instalador com a conta que roda o Owncast e reinicie. O próprio script guarda um arquivo da pasta data em owncast-install-backups antes de substituir a versão.
sudo systemctl stop owncast
su -c "curl https://owncast.online/install.sh | bash" owncast
sudo systemctl start owncast
A versão 0.3.0, lançada em 3 de setembro de 2026, traz os plugins, os Featured Streams, a reprodução automática e a escolha da interface em que o RTMP escuta. As notas dela pedem para ler as mudanças antes de atualizar, pois elas afetam sua instância: acompanhe essas notas a cada versão e copie a pasta data logo antes.
A auto-hospedagem exige cuidar do servidor além da aplicação. Em um VPS gerenciado, nossas equipes assumem o servidor e acompanham sua instância de forma proativa; o Owncast continua sendo seu software, com as configurações e os dados dele.
| Assunto | Nossas equipes | Você |
|---|---|---|
| O servidor | Atualizações do sistema e de segurança, com intervenções no servidor incluídas | O momento que convém a sua atividade |
| A supervisão | Servidor acompanhado 24 horas por dia, 7 dias por semana, com intervenção sem esperar sua ligação | A leitura dos logs de sua instância |
| Owncast | Acompanhamento proativo: erros, lentidões, carga da CPU e espaço em disco identificados, correção recomendada | A instalação, as atualizações e as configurações dele, que você aplica, por conta própria ou com seu assistente de IA |
| As transmissões e o chat | O servidor que os sustenta, monitorado e com backup | As chaves de transmissão, as qualidades de vídeo, os moderadores e as regras do chat |
| Os backups | Toda noite, criptografados e guardados fora da máquina; restauração incluída | As cópias próprias do Owncast e o pedido de restauração, quando você precisar |
| A migração | Seu servidor atual migrado, grátis | O momento da virada |
Se você preferir que nossas equipes intervenham na própria aplicação, esse serviço é cobrado por hora ou por valor fechado, com o orçamento informado antes da intervenção.
Com um VPS gerenciado Simafri, nossas equipes mantêm atualizado o servidor de sua instância Owncast, monitoram-no dia e noite e intervêm sem esperar sua ligação; elas também acompanham sua instância de forma proativa e recomendam as correções úteis, que você aplica por conta própria ou com seu assistente de IA. Os backups são criptografados todas as noites e guardados fora da máquina, a restauração está incluída, e a migração de seu servidor atual é grátis.
Sim. O Owncast está sob a licença MIT: você pode usá-lo, modificá-lo e redistribuí-lo em uma empresa sem licença a comprar, desde que mantenha o aviso de copyright dele. Resta o custo do servidor em que ele roda.
Depende das qualidades que você oferece. Como regra aproximada, a documentação conta um núcleo por qualidade transcodificada a 30 quadros por segundo, e quase nada para uma qualidade em passthrough. O número de espectadores não muda a carga da CPU.
A velocidade de pico é igual à taxa de bits do fluxo vezes o número de espectadores: 25 espectadores a 5.000 kbps pedem 125 Mbps de saída. Um armazenamento de objetos compatível com S3 pode servir o vídeo no lugar do servidor, que passa a enviar uma única cópia de cada qualidade.
Crie um compose.yaml com a imagem owncast/owncast, a porta 8080 publicada em 127.0.0.1, a porta 1935 para o RTMP e uma pasta data montada em /app/data e execute docker compose up -d. Coloque então na frente da porta 8080 um proxy reverso em HTTPS.
A administração, em /admin, abre com o usuário admin e a senha abc123, e a chave de transmissão também é abc123. São duas configurações distintas: mude as duas no primeiro login, em Configuration, Server Setup.
No OBS, escolha um serviço personalizado e informe rtmp://seu-servidor:1935/live e sua chave de transmissão. Envie vídeo H.264 e áudio AAC, com um quadro-chave a cada 2 segundos.
O Owncast faz backup do banco a cada hora em data/backup/owncastdb.bak. Esse backup cobre apenas o banco: para uma recuperação completa, copie a pasta data inteira para fora do servidor. A restauração é feita com a opção --restoreDatabase.
Um VPS gerenciado cobre o servidor: sistema, segurança, supervisão e backups. Nossas equipes também acompanham sua instância de forma proativa e recomendam as correções úteis, que você aplica. Uma intervenção na aplicação é cobrada por hora ou por valor fechado.
Simafri
Vamos falar de seu site
Conte para a gente sobre seu projeto em poucas palavras: responderemos rapidamente.
Obrigado! O seu pedido foi enviado. Responderemos em breve.
Prefere o e-mail? Escreva para a gente em support@simafri.com.