Arquitetura de Streaming em VPS: Integrando LiveKit, FFmpeg, Wasabi e DirectAdmin
Construir uma infraestrutura de mídia em tempo real exige mais do que apenas instalar pacotes isolados. O desafio técnico reside em combinar serviços com naturezas distintas: um painel de hospedagem web tradicional (DirectAdmin), um servidor WebRTC de baixa latência (LiveKit), processamento intensivo de vídeo (FFmpeg) e armazenamento em nuvem para gravações (Wasabi S3), tudo mantendo o servidor seguro e monitorado.
Quando alocados em um único VPS (como os modelos balanceados da OVH), esses serviços competem por portas de rede, ciclos de CPU e buffers de memória. Compreender o fluxo de dados e os limites de isolamento é essencial para evitar quedas em transmissões ao vivo.
1. O Desenho da Arquitetura
Para que múltiplos serviços convivam de forma estável, cada componente precisa de um papel estritamente definido:
- DirectAdmin: Gerencia domínios, certificados SSL/TLS (via Let’s Encrypt), serviços web (Nginx/Apache) e e-mail. Deve operar nas portas padrão (80, 443, 2222).
- LiveKit Server: Atua como SFU (Selective Forwarding Unit) para WebRTC. Requer portas TCP dedicadas para controle de sinalização e uma faixa ampla de portas UDP (tipicamente
50000-60000) para os pacotes de mídia. - LiveKit Egress & FFmpeg: Módulo responsável por capturar sessões de vídeo, transcodificar sob demanda e gerar arquivos para exportação.
- Wasabi Hot Cloud Storage: Destino final de gravações de vídeo via API compatível com S3, eliminando custos de transferência de saída (egress).
- Cockpit: Interface web administrativa de monitoramento de métricas em tempo real (CPU, RAM, I/O e logs de rede).
2. Configurações Críticas de Rede e Firewall
O principal ponto de falha em servidores de mídia WebRTC é o bloqueio ou má configuração de portas de transporte.
Ajustes de Kernel (sysctl)
Transmissões com alto volume de pacotes UDP exigem buffers de rede maiores do que o padrão de distribuições Linux (como Ubuntu ou AlmaLinux):
ini
/etc/sysctl.d/99-livekit.conf
net.core.rmemmax = 2500000
net.core.wmemmax = 2500000
net.core.rmemdefault = 2500000
net.core.wmemdefault = 2500000
Conflitos de Reverse Proxy
Como o DirectAdmin costuma controlar as portas 80 e 443, o tráfego WebSocket do LiveKit deve ser roteado por meio de um proxy reverso configurado no Nginx gerenciado pelo DirectAdmin, ou apontando um subdomínio específico (rtc.seudominio.com) diretamente para a porta interna da API do LiveKit (porta padrão: 7880).
3. Pipeline de Gravação com FFmpeg e Wasabi S3
Em sistemas que desenvolvo com foco em processamento de vídeo, evito salvar arquivos finais diretamente no disco local do VPS, pois o I/O intensivo de gravação degrada a entrega de pacotes em tempo real do LiveKit.
O fluxo recomendado consiste em:
- Captura via Egress Service: O LiveKit Egress inicializa uma instância do FFmpeg em container isolado.
- Buffer Local Temporário: O fluxo é encodado em HLS/MP4 em um diretório montado em memória (
tmpfs) ou SSD de alta velocidade. - Upload Contínuo S3: O artefato é enviado de forma assíncrona para o bucket Wasabi utilizando credenciais IAM com permissão restrita de escrita (
s3:PutObject).
Essa abordagem desacopla o consumo de disco do ciclo de vida da transmissão, mantendo a latência estável para os usuários conectados.
4. Segurança e Monitoramento com Cockpit
Manter um ambiente de mídia exposto à internet requer camadas ativas de proteção:
- Cockpit: Implementado na porta 9090, protegido por firewall local e acessível apenas via IP estático administrativo ou túnel VPN.
- Fail2ban: Regras ativas para o DirectAdmin, SSH e chamadas abusivas na API de autenticação do LiveKit.
- Controle de Recursos (cgroups/Docker): Limitar o percentual de CPU que o FFmpeg pode utilizar garante que o processo de transcodificação não cause starvation (esgotamento de recursos) no processo do LiveKit ou no servidor web.
Conclusão e Próximos Passos
Unir painéis de hospedagem convencionais como o DirectAdmin com serviços modernos de WebRTC exige planejamento meticuloso de roteamento, portas de rede e alocação de hardware. Quando bem implementada, a solução garante estabilidade de transmissão com custos de infraestrutura consideravelmente reduzidos.
Se você precisa planejar, implementar ou otimizar uma arquitetura de streaming sob medida em servidores dedicados ou VPS, entre em contato para uma consultoria técnica especializada.


