Alojar Owncast num VPS gerido é transmitir os seus vídeos em direto e animar o respetivo chat a partir de uma máquina sua, que as nossas equipas mantêm atualizada e supervisionam dia e noite. O Owncast é um software livre sob licença MIT. Este guia segue a sua documentação oficial: o processador e a largura de banda a prever, a instalação com o Docker Compose, a chave de transmissão, o HTTPS, as qualidades de vídeo, o armazenamento de objetos, o chat, as cópias de segurança e as atualizações.
Por Simon Vasconcelos Lee
Publicado a 14 de novembro de 2026Leitura: 15 minutos
owncast/owncast, que inclui o ffmpeg, a porta web 8080 atrás de um proxy inverso em HTTPS, e a porta RTMP 1935 para o seu software de transmissão.abc123 por predefinição.data inteira para fora do servidor para um restauro completo, e atualize com docker compose pull.O Owncast é um servidor de transmissão de vídeo em direto e de chat, de código aberto, autoalojado e de utilizador único: uma instância suporta o canal de uma pessoa ou de uma organização. O seu README apresenta-o como uma forma de fazer as suas próprias transmissões em direto, ao estilo das grandes plataformas, mantendo a propriedade do seu conteúdo, da sua interface, da sua moderação e do seu público.
/hls/stream.m3u8.O Owncast é publicado sob a licença MIT. Esta concede, gratuitamente, o direito de utilizar, copiar, modificar, fundir, publicar, distribuir, sublicenciar e vender cópias do software. Pode, portanto, fazê-lo correr para a sua empresa, a sua comunidade ou os seus clientes, sem licença para comprar.
A única condição é manter o aviso de direitos de autor e o texto da licença em todas as cópias ou partes substanciais do software. O texto fornece o software «tal como está», sem garantia.
A documentação começa por dizê-lo: as necessidades dependem da sua configuração. Estabelece, no entanto, uma regra clara para as estimar. O processador transcodifica o vídeo nas qualidades que oferece; a largura de banda entrega-o a cada espectador.
A documentação dá duas fórmulas. O volume de uma transmissão, em gigabytes: débito em kbps × duração em segundos × espectadores ÷ 8 000 000. O débito de saída de pico a sustentar, em Mbps: débito em kbps × espectadores ÷ 1000. Com várias qualidades, calcule cada uma e some-as. As suas estimativas para uma transmissão de duas horas:
| Débito do sinal | 10 espectadores | 25 espectadores | 50 espectadores |
|---|---|---|---|
| 2000 kbps | 18 GB, 20 Mbps | 45 GB, 50 Mbps | 90 GB, 100 Mbps |
| 4000 kbps | 36 GB, 40 Mbps | 90 GB, 100 Mbps | 180 GB, 200 Mbps |
| 6000 kbps | 54 GB, 60 Mbps | 135 GB, 150 Mbps | 270 GB, 300 Mbps |
Num VPS Simafri, o tráfego não tem contador mensal: as suas transmissões dimensionam-se pelo seu débito de pico. Quando o público cresce, o armazenamento de objetos, apresentado mais abaixo, serve o vídeo no lugar do servidor.
A documentação dá pontos de referência medidos, assinalando que variam com o codec, o débito, a resolução e a predefinição do codificador:
| Configuração | Carga do processador |
|---|---|
| Uma única qualidade em passthrough, sem recodificação | Mínima |
| Uma única qualidade transcodificada | Ligeira |
| Duas qualidades, alta e baixa | Moderada |
| Três qualidades, ou uma compressão forte | Elevada |
A documentação não indica nenhum valor de memória, e o disco conta pouco: os segmentos de vídeo são escritos e depois apagados à medida que o direto avança. Só a pasta data cresce com o tempo. Num VPS, é o processador que codifica: cada qualidade transcodificada dimensiona-se em vCPU. Num VPS gerido, descreva-nos as suas transmissões, o seu débito, as suas qualidades e o seu público, e recomendamos-lhe o tamanho adequado.
Antes de chegar ao servidor, o sinal sai da sua própria ligação. A documentação pede um débito ascendente de pelo menos 1,5 vezes o débito do sinal: 7,5 Mbps para um sinal de 5000 kbps. Recomenda uma ligação por cabo em vez do Wi-Fi.
A documentação propõe a imagem owncast/owncast no Docker Hub, que inclui o ffmpeg, a ferramenta de codificação de que o Owncast precisa. Num servidor com o Docker instalado, crie uma pasta e coloque nela este compose.yaml, tirado 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 alteração em relação ao exemplo da documentação, que publica as duas portas. A sua página sobre os proxies inversos pede que o Owncast não fique exposto à internet, porque escuta em todas as interfaces por predefinição, e o Docker publica uma porta em todos os endereços do servidor quando não lhe é indicado nenhum. A interface web passa então a ser acessível apenas através do proxy inverso.data guarda a base de dados e as suas cópias no servidor, fora do contentor: é ela que copia e que transporta.latest acompanha a versão mais recente; 0.3.0 fixa uma versão.A outra via da documentação é um script que transfere a última versão do Owncast para a sua plataforma, e o ffmpeg se ainda não estiver presente. Instala tudo numa pasta owncast dentro da pasta atual. A documentação desaconselha executá-lo como root e recomenda ler qualquer script remoto antes de o executar:
curl -s https://owncast.online/install.sh | bash
Para que o Owncast arranque com o servidor e reinicie sozinho depois de 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 encontra-se em /admin. O Owncast arranca com credenciais que todos conhecem, e a documentação pede que as mude no primeiro início de sessão:
| Definição | Valor predefinido | Para que serve |
|---|---|---|
| Nome de utilizador de administração | admin | Iniciar sessão em /admin |
| Palavra-passe de administração | abc123 | Iniciar sessão em /admin |
| Chave de transmissão | abc123 | Publicar o sinal a partir do seu software de transmissão |
Para fazer esta alteração antes de a interface ficar aberta ao público, passe por um túnel SSH: a porta 8080 do servidor aparece no seu computador, em http://localhost:8080/admin. Acrescente -p e a porta SSH indicada na sua área de cliente.
ssh -L 8080:127.0.0.1:8080 user@live.example.com
!@#$%^&*, e nenhum hífen.--adminpassword, que a grava na base de dados.A palavra-passe de administração e a chave de transmissão começam ambas em abc123, mas são duas definições distintas: mude as duas.
O Owncast não trata ele próprio do HTTPS. A documentação coloca à sua frente um proxy inverso, que escuta nas portas 80 e 443, obtém o certificado, cifra o tráfego e transmite-o em claro ao Owncast na porta 8080. Sem HTTPS, os navegadores assinalam a página como não segura, e uma página servida em HTTPS não pode incorporar o seu vídeo nem o seu chat.
/ws, que transporta o chat. Um proxy que a bloqueie corta o chat.X-Forwarded-For para bloquear o endereço IP de um utilizador banido do chat. A documentação pede que seja o próprio proxy a definir este cabeçalho.A documentação sugere o Caddy se não tiver outra preferência: obtém sozinho um certificado Let's Encrypt e transmite o WebSocket sem nenhuma definição adicional. Eis o seu exemplo de Caddyfile, em que a linha tls indica 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 à secçã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ó é aceite 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.
Num VPS Simafri, o endereço IPv6 do servidor pode abrir a porta à sua escolha: o seu software de transmissão chega à porta 1935 por esse endereço, com um nome que tenha o registo AAAA. Numa rede Docker em IPv4, como aqui, o Docker liga a porta do endereço IPv6 do servidor ao contentor. Abra essa porta se o ufw estiver ativo e teste depois a partir do seu computador:
sudo ufw allow 1935/tcp
nc -6 -vz live.example.com 1935
Para qualquer outra necessidade, diga-nos o que pretende e analisamos consigo o endereçamento.
2.| Resolução | Imagens por segundo | Débito sugerido |
|---|---|---|
| 1920 × 1080 | 60 | 5000 kbps |
| 1920 × 1080 | 30 | 4500 kbps |
| 1280 × 720 | 60 | 4000 kbps |
| 1280 × 720 | 30 | 3000 kbps |
As qualidades oferecidas aos espectadores definem-se em «Configuration», «Video». Várias qualidades permitem ao leitor escolher a que a sua ligação consegue sustentar: a documentação recomenda uma segunda qualidade, de 1000 a 2000 kbps, ao lado de uma qualidade alta de 4000 a 6000 kbps, depois de testada a sua primeira configuração.
O passthrough transmite o vídeo recebido sem o recodificar: poupa quase todo o processador dessa qualidade e ignora as respetivas definições de débito, de resolução e de cadência. A documentação reserva-o aos utilizadores avançados: os espectadores recebem exatamente o que o seu software envia, que alguns leitores não conseguem reproduzir, e a latência aumenta. Teste a leitura nos dispositivos que lhe interessam antes de contar com ele.
A latência regula-se com a memória intermédia de latência, na mesma página. Cada nível troca um pouco de atraso por estabilidade, e uma alteração aplica-se a partir da transmissão seguinte:
| Nível | Duração de um segmento | Segmentos na lista | Latência aproximada |
|---|---|---|---|
| 0, a mais baixa | 1 segundo | 25 | cerca de 5 segundos |
| 1 | 2 segundos | 15 | cerca de 8 a 9 segundos |
| 2, predefinida | 3 segundos | 10 | cerca de 10 segundos |
| 3 | 4 segundos | 8 | cerca de 15 segundos |
| 4, a mais alta | 5 segundos | 5 | cerca de 18 segundos |
A versão 0.3.0 acrescenta também, do lado do espectador, a opção «Minimize latency» do leitor, que acelera ligeiramente a leitura para se aproximar do direto, e uma definição de reprodução automática, desativada por predefinição.
O Owncast pode enviar os seus segmentos de vídeo para um armazenamento compatível com S3, a partir do qual os espectadores os transferem. O servidor continua a servir a lista de reprodução principal, as API e o chat; o vídeo, que representa quase toda a largura de banda, vem do armazenamento. O seu servidor envia então uma única cópia de cada qualidade: no exemplo da documentação, 6,5 Mbps para duas qualidades a 5000 e 1500 kbps, quer tenha zero espectadores ou mil. A carga do processador mantém-se a mesma.
CORS ou Access-Control-Allow-Origin na consola do navegador vem quase sempre daí.Este armazenamento serve o direto, não um arquivo: o Owncast apaga, à medida que avança, os segmentos mais antigos do que a lista de reprodução 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 descreve também uma rede de distribuição de conteúdos (CDN) colocada à frente do Owncast, com um nome de anfitrião de origem distinto e a definição «Websocket host override», que mantém o chat ligado ao servidor de origem.
O chat configura-se em «Configuration», «Chat». Por predefinição, não há nenhum moderador: a documentação sugere que, pelo menos, se nomeie a si próprio, a partir da página «Users» da administração.
A documentação assinala que o bloqueio por IP pode ser contornado, com uma VPN, por exemplo: reduz os abusos, e a moderação continua a ser o trabalho próprio de cada canal. Daí o interesse de moderadores nomeados para as suas transmissões mais vistas.
O Owncast faz ele próprio a cópia da sua base de dados uma vez por hora, em data/backup/owncastdb.bak. A opção --backupdir muda essa pasta. Eis o que contém a pasta de dados:
| Elemento | O que guarda | Na cópia de hora a hora |
|---|---|---|
owncast.db | A configuração, os utilizadores, o histórico do chat e os tokens de acesso | Sim |
backup/ | A cópia de hora a hora da base de dados | É a própria cópia |
Emojis personalizados, public/ | Os ficheiros que acrescentou | Não |
| Plugins | Os plugins instalados e os seus dados, desde a 0.3.0 | Não |
| Dados GeoIP | A origem das ligações dos espectadores | Não |
Para um restauro completo, ou para transportar a instância, a documentação pede que copie a pasta data inteira: copiá-la para uma nova instalação leva tudo consigo. Com o Docker, com o serviço parado:
docker compose down
tar -czf owncast-$(date +%F).tar.gz data
docker compose up -d
Agende esta cópia ao ritmo das suas transmissões e envie-a para fora do servidor. Colocados no seu disco, estes arquivos entram também nas suas cópias de segurança noturnas.
Um restauro devolve a base de dados ao momento da cópia: tudo o que mudou desde então perde-se. Copie primeiro a base de dados atual para um lugar seguro e depois:
--restoreDatabase e o caminho do ficheiro de cópia: restaura a base de dados e depois termina.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 mantém-se no lugar:
docker compose pull
docker compose up -d
Com o instalador, a nota da versão 0.3.0 descreve a atualização: pare o serviço, ponha de lado os ficheiros da interface web que tiver personalizado, execute de novo o instalador com a conta que faz correr 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, publicada a 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. A sua nota pede que leia as alterações antes de atualizar, porque afetam a sua instância: acompanhe estas notas a cada versão e copie a pasta data logo antes.
O autoalojamento exige cuidar do servidor para além da aplicação. Num VPS gerido, as nossas equipas assumem o servidor e acompanham a sua instância de forma proativa; o Owncast continua a ser o seu software, com as suas definições e os seus dados.
| Assunto | As nossas equipas | Você |
|---|---|---|
| O servidor | Atualizações do sistema e de segurança, intervenções no servidor incluídas | O momento que convém à sua atividade |
| A supervisão | Servidor acompanhado 24 horas por dia, 7 dias por semana, com intervenção sem esperar pela sua chamada | A leitura dos registos da sua instância |
| Owncast | Acompanhamento proativo: erros, lentidão, carga do processador e espaço em disco identificados, correção recomendada | A sua instalação, as suas atualizações e as suas definições, que aplica diretamente ou com o seu assistente de IA |
| As transmissões e o chat | O servidor que os suporta, vigiado e com cópias de segurança | As chaves de transmissão, as qualidades de vídeo, os moderadores e as regras do chat |
| As cópias de segurança | Todas as noites, cifradas e guardadas fora da máquina; restauro incluído | As cópias próprias do Owncast e o pedido de restauro, quando precisar |
| A migração | O seu servidor atual migrado, oferecido | O momento da mudança |
Se preferir que as nossas equipas intervenham na própria aplicação, este serviço é faturado à hora ou por pacote, com um orçamento comunicado antes da intervenção.
Com um VPS gerido da Simafri, as nossas equipas mantêm atualizado o servidor da sua instância Owncast, vigiam-no dia e noite e intervêm sem esperar pela sua chamada; acompanham também a sua instância de forma proativa e recomendam-lhe as correções úteis, que aplica diretamente ou com o seu assistente de IA. As cópias de segurança são cifradas todas as noites e guardadas fora da máquina, o seu restauro está incluído, e a migração do seu servidor atual é oferecida.
Sim. O Owncast está sob licença MIT: pode utilizá-lo, modificá-lo e redistribuí-lo numa empresa sem licença para comprar, desde que mantenha o seu aviso de direitos de autor. Resta o custo do servidor que o faz funcionar.
Depende das qualidades que oferece. Como regra aproximada, a documentação conta um núcleo por qualidade transcodificada a 30 imagens por segundo, e quase nada para uma qualidade em passthrough. O número de espectadores não muda a carga do processador.
O débito de pico é igual ao débito do sinal multiplicado pelo número de espectadores: 25 espectadores a 5000 kbps exigem 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 depois um proxy inverso em HTTPS à frente da porta 8080.
A administração, em /admin, abre-se com o nome de utilizador admin e a palavra-passe abc123, e a chave de transmissão também é abc123. São duas definições distintas: mude as duas no primeiro início de sessão, em Configuration, Server Setup.
No OBS, escolha um serviço personalizado e introduza rtmp://seu-servidor:1935/live e a sua chave de transmissão. Envie vídeo H.264 e áudio AAC, com uma imagem-chave a cada 2 segundos.
O Owncast faz a cópia da sua base de dados de hora a hora em data/backup/owncastdb.bak. Essa cópia só cobre a base de dados: para um restauro completo, copie a pasta data inteira para fora do servidor. O restauro faz-se com a opção --restoreDatabase.
Um VPS gerido cobre o servidor: sistema, segurança, supervisão e cópias de segurança. As nossas equipas acompanham também a sua instância de forma proativa e recomendam-lhe as correções úteis, que aplica. Uma intervenção na aplicação é faturada à hora ou por pacote.
Simafri
Vamos falar do seu projeto
Diga-nos em poucas palavras o que precisa: respondemos-lhe rapidamente.
Obrigado! O seu pedido foi enviado. Responderemos em breve.
Prefere o email? Escreva-nos para support@simafri.com.