Voltar
Instalação

Domínio público

Atualizado em 2026-06-29

O BrutusForge serve tudo na mesma origem (single-origin): a Web, a Loja e a API respondem sob o mesmo domínio. O navegador faz chamadas relativas (/api, /socket.io) e o servidor Web (Next.js) faz o proxy interno para a API (API_INTERNAL_URL, padrão http://localhost:3001). Por isso, basta expor a porta da Web ao mundo — não é preciso publicar a porta da API.

1. Definir o domínio (no app)

  • No setup inicial: preencha "Domínio público (opcional)" na última etapa.
  • Depois, a qualquer momento: em Admin → Marca (whitelabel), card "Acesso público (domínio)", informe o domínio e clique Aplicar e reiniciar.

Em ambos os casos o BrutusForge grava no .env e reinicia API + Bot:

WEB_BASE_URL=https://<dominio>
CORS_ORIGIN=https://<dominio>
DISCORD_REDIRECT_URI=https://<dominio>/auth/callback

O .env é preservado entre reinícios do launcher — a configuração não é sobrescrita no boot.

2. Apontar o Cloudflare Tunnel para a porta da Web

Como é single-origin, uma única regra basta — aponte o túnel para a porta da Web (padrão 3000). A Web faz o proxy de /api e /socket.io para a API internamente.

config.yml do cloudflared (exemplo):

config.yml
tunnel: ID-DO-TUNNEL
credentials-file: C:\Users\voce\.cloudflared\ID.json
ingress:
  - hostname: painel.seudominio.com.br
    service: http://localhost:3000
  - service: http_status:404

DNS: crie um CNAME painel apontando para ID-DO-TUNNEL.cfargotunnel.com (cloudflared tunnel route dns <tunnel> painel.seudominio.com.br).

WebSocket: o socket.io usa websocket com fallback automático para polling. O Cloudflare proxia WebSocket normalmente; quando passa pelo proxy interno do Next, o polling cobre o caso. Não é necessária nenhuma regra de path extra.

3. Registrar o callback do Discord

No Discord Developer Portal → sua aplicação → OAuth2 → Redirects, adicione exatamente:

https://painel.seudominio.com.br/auth/callback

Tem que bater com o DISCORD_REDIRECT_URI gravado no passo 1. Sem isso, o login com Discord falha.

Resumo do que é automático vs. manual

EtapaQuem faz
Gravar WEB_BASE_URL/CORS_ORIGIN/DISCORD_REDIRECT_URI + reiniciar serviçosApp (setup ou card admin)
Chamadas do navegador na mesma origem (sem localhost fixo)App (já embutido)
Criar/rotear o Cloudflare Tunnel + DNSManual (passo 2)
Registrar o redirect no DiscordManual (passo 3)

Trocar o domínio no app não atualiza o túnel nem o redirect do Discord — refaça os passos 2 e 3 se o domínio mudar.