OpenCall

Deploy demo (Render)

Subir uma instância pra experimentar, sem cartão e sem domínio próprio.

Caminho grátis pra experimentar o OpenCall. Não é o caminho pra uma comunidade de verdade — ver Limites reais no fim.

PeçaServiçoCusto
Hospedagem do Next.jsRender, instância FreeUS$ 0
PostgresNeon, plano FreeUS$ 0
LiveKitLiveKit Cloud, plano BuildUS$ 0
Domínionenhum*.onrender.com e *.livekit.cloud já vêm com TLS
Armazenamento de anexos (opcional)Neon Object StorageUS$ 0 — dá pra pular, ver passo 5

Leia os limites antes de investir tempo

O teto que aperta primeiro é LiveKit Cloud Build: 5 conexões WebRTC simultâneas no projeto inteiro. Seis pessoas numa call não entram.

Comandos no terminal

Alguns passos aqui são digitados num terminal e precisam do Node.js instalado. Se você nunca abriu um, veja "Antes de começar" em Requisitos.

1. App: Render

O Render é onde o app roda, e ele vem primeiro de propósito. É ele que gera o endereço https://SEU-SERVICO.onrender.com, do qual três variáveis dependem, e é onde todas as outras variáveis vão ser coladas. Criando o serviço agora, você preenche cada variável na hora que ela aparece, em vez de guardar tudo num bloco de notas até o fim.

Antes de começar você precisa de um fork do repo do OpenCall na sua conta — ver Criar conta no GitHub e fazer fork.

2. Discord

O Discord é como as pessoas entram — o OpenCall não tem cadastro por email/senha.

Siga Configurar o Discord. Como o serviço do passo 1 já tem endereço, dá pra cadastrar o Redirect URI definitivo de primeira:

https://SEU-SERVICO.onrender.com/api/auth/callback/discord

O NEXTAUTH_SECRET sai de Gerar o segredo de sessão — um comando, sem conta pra criar.

Cole no Render: DISCORD_CLIENT_ID, DISCORD_CLIENT_SECRET, NEXTAUTH_SECRET.

3. Voz: LiveKit Cloud

O LiveKit é o servidor que de fato carrega o áudio e o vídeo.

Siga LiveKit: Cloud no plano Build (sem cartão).

Não existe comando que crie um projeto no LiveKit Cloud — esse passo acontece no navegador, mesmo quando uma IA está fazendo o resto.

Cole no Render: LIVEKIT_URL, LIVEKIT_API_KEY, LIVEKIT_API_SECRET.

4. Banco de dados: Neon

O Neon é onde o app guarda usuários, mensagens e configurações.

Siga a seção Opção B: Neon (grátis) do Banco de dados. Plano Free, sem cartão, e o projeto inteiro sai pela linha de comando com o neonctl.

Use a connection string pooled — o host dela tem o sufixo -pooler.

Cole no Render: DATABASE_URL.

5. Armazenamento de anexos (opcional)

Dá pra subir a demo sem ele: voz, vídeo, compartilhamento de tela e chat de texto funcionam. O que falta é anexar imagem no chat — o botão de anexo não aparece.

Pra ter, siga Neon Object Storage — a mesma conta e a mesma API key do passo 4, então não entra provedor novo nem cartão.

O Cloudflare R2 também funciona e é o que o caminho de produção usa, mas pede método de pagamento pra habilitar, mesmo dentro do free — que é exatamente a fricção que esta página existe pra evitar.

As imagens dividem a cota de tráfego do banco

Os 5 GB/mês de tráfego de rede do Neon valem pro projeto inteiro, imagem e banco juntos, e estourar suspende o compute até o próximo ciclo. Pra uma demo sobra.

Cole no Render: R2_BUCKET, R2_ACCESS_KEY_ID, R2_SECRET_ACCESS_KEY, NEXT_PUBLIC_R2_PUBLIC_BASE_URL, R2_ENDPOINT, R2_REGION.

6. Criar as tabelas

O banco existe, mas ainda está vazio. Este comando cria as tabelas que o app espera.

A instância Free do Render não tem acesso a terminal, então rode da sua própria máquina, na pasta onde você clonou o repo do OpenCall.

DATABASE_URL="COLE_A_STRING_POOLED" pnpm prisma db push

Ao terminar ele imprime algo como Your database is now in sync with your Prisma schema. Depois siga a Verificação final.

Limites reais

LimiteValorConsequência
Conexões WebRTC simultâneas (LiveKit Build)5teto de participantes em call, somando todos os canais
Minutos WebRTC/mês (LiveKit Build)5.0005 pessoas × 3h já são 900 min
Banda de saída (LiveKit Build)50 GB/mês
Ociosidade (Render Free)dorme em 15 mino primeiro acesso depois disso leva ~1 min
Instância (Render Free)512 MB RAM, 0.1 CPUo build do Next.js é o mais provável de estourar
Horas/mês (Render Free)750 h por workspace
Banco (Neon Free)0,5 GB, 100 CU-h/mêsestourada a cota, o compute fica suspenso até o próximo ciclo
Armazenamento de anexos (Neon Free)5 GB por projetodurante o beta
Tráfego de rede (Neon Free)5 GB/mês por projetodividido entre banco e imagens; estourar suspende o compute
Ociosidade (Neon Free)suspende em 5 minsoma ~1s na primeira query

Presença, chat ao vivo e o aviso de chamada vivem na memória do processo: quando o Render derruba a instância por ociosidade, quem estava numa call é desconectado e esse estado zera.

Quando sair daqui

Na hora que 5 pessoas simultâneas virarem pouco: Deploy produção (Railway) mais LiveKit Cloud pago ou LiveKit self-host. Mesmas variáveis, apontando pra outro lugar.

On this page