OpenCall

LiveKit: self-host

LiveKit numa VPS sua — custo fixo mensal. Exemplo com Vultr.

Já fez o LiveKit Cloud? Pule esta página

Se você já passou pelo LiveKit: Cloud — pra demo ou pra uso normal dentro dos limites dele — a parte de voz já está resolvida. Pule esta página.

Continue a leitura só se você realmente quer subir o serviço por conta própria, sem limitação.

Qualquer VPS com IP público serve. Os exemplos usam Vultr; os passos são os mesmos em qualquer outra.

1. Provisionar a VPS

Crie uma conta na Vultr.

Deploy New Server → Cloud Compute → plano High Frequency (a partir de ~US$6/mês: NVMe, CPU dedicada, 2TB de banda inclusos).

Escolha a região mais próxima da sua comunidade.

Sistema operacional: Ubuntu 24.04.

2. Apontar um domínio

O LiveKit precisa de HTTPS/WSS — sem certificado TLS válido o navegador bloqueia a conexão WebRTC.

Crie um registro DNS A apontando um subdomínio (ex: livekit.suacomunidade.com) pro IP da VPS, e confirme a propagação:

dig +short livekit.suacomunidade.com

Deve imprimir o IP da VPS. Se não imprimir nada, o DNS ainda não propagou — espere e tente de novo antes de seguir.

3. Instalar o LiveKit

Conecte na VPS. O comando ssh é o mesmo no macOS e no Windows — os dois já vêm com ele:

ssh root@IP-DA-SUA-VPS

O comando seguinte roda dentro da VPS, que é Ubuntu — então ele é o mesmo independente do computador de onde você conectou:

curl -sSL https://get.livekit.io | bash

O instalador oficial monta Docker Compose, Caddy (TLS automático) e o par API key/secret. Ele pergunta o domínio do passo 2 e, no fim, imprime LIVEKIT_API_KEY, LIVEKIT_API_SECRET e a URL (wss://SEU-DOMINIO). Guarde os três.

Referência: docs.livekit.io/home/self-hosting/vm.

4. Abrir as portas

O instalador já abre o necessário na VPS:

  • 443/TCP — sinalização e TLS
  • UDP 50000-60000 — mídia (o áudio/vídeo em si)

Diagrama: 443/TCP carrega sinalização e TLS enquanto UDP 50000-60000 carrega a mídia; as duas faixas precisam estar abertas no firewall da VPS e no firewall de borda da Vultr

Se a Vultr tiver firewall de borda ligado no dashboard (separado do firewall da própria VPS), abra as mesmas faixas lá também. É a causa mais comum de "conecta mas ninguém escuta ninguém".

Variáveis desta etapa

VariávelValor
LIVEKIT_URLwss://SEU-DOMINIO
LIVEKIT_API_KEYGerada pelo instalador
LIVEKIT_API_SECRETGerada pelo instalador

Opcional: métricas de infraestrutura

Com VPS própria, o painel de admin pode mostrar CPU, RAM, disco e banda em tempo real. Os passos estão no infra/vps-metrics/README.md do repositório do app: dois scripts instalados via cron na VPS, mais SERVER_METRICS_INGEST_SECRET, VPS_SSH_HOST, VPS_SSH_USER e VPS_SSH_PRIVATE_KEY no serviço do Next.js. Sem isso, a aba "Infra" não aparece.

On this page