Por padrao, o BrutusForge roda em localhost:3000 (web) + localhost:3001 (API). Isso e suficiente pra voce acessar pela mesma maquina. Se quiser que outros administradores acessem o painel de fora (rede corporativa, VPN, ou internet publica), voce precisa expor via um dominio.
Requisitos: um dominio registrado (ex: brutusforge.meuclan.com) e uma das opcoes abaixo.
Opcao 1 — Cloudflare Tunnel (recomendado)
Zero custo, sem abrir porta no roteador, SSL automatico. Voce precisa do dominio ja delegado pra Cloudflare.
- Instale
cloudflared(winget install Cloudflare.cloudflared). cloudflared tunnel login— autentica e vincula ao seu dominio.cloudflared tunnel create brutusforge— gera UUID + cert local.- Edite
~/.cloudflared/config.yml:tunnel: <UUID> credentials-file: C:\Users\<voce>\.cloudflared\<UUID>.json ingress: - hostname: brutusforge.meuclan.com service: http://localhost:3000 - hostname: api.brutusforge.meuclan.com service: http://localhost:3001 - service: http_status:404 cloudflared tunnel route dns brutusforge brutusforge.meuclan.comcloudflared tunnel run brutusforge(ou registrar como service:cloudflared service install).
Opcao 2 — Reverse proxy (Caddy ou nginx)
Necessita abrir portas 80/443 no roteador (NAT/port forwarding) e ter IP publico estavel (DDNS se residencial).
Caddy (mais simples)
brutusforge.meuclan.com {
reverse_proxy localhost:3000
}
api.brutusforge.meuclan.com {
reverse_proxy localhost:3001
}Rode com caddy run. SSL Let's Encrypt automatico.
Ajustes no .env apos configurar dominio
Edite C:\BrutusForge\.env:
# Origens permitidas pra CORS (CSV — inclua localhost pra nao quebrar dev)
CORS_ORIGIN=http://localhost:3000,https://brutusforge.meuclan.com
# URL publica do frontend (usada pela API em redirects OAuth)
WEB_BASE_URL=https://brutusforge.meuclan.com
NEXT_PUBLIC_API_URL=https://api.brutusforge.meuclan.com
# Discord OAuth — adicione redirect novo na sua Discord App
DISCORD_REDIRECT_URI=https://brutusforge.meuclan.com/auth/callbackDiscord Developer Portal
- Abra sua aplicacao em discord.com/developers
- OAuth2 → Redirects → adicione:
https://brutusforge.meuclan.com/auth/callback - Salve. O Discord passa a aceitar ambos
localhost:3000/auth/callbacke o dominio publico.
Reinicie os services
Pelo tray launcher BrutusForge (clique direito → Reiniciar todos) ou pelo services.msc. A API recarrega o .env.
Validacao
https://brutusforge.meuclan.com→ login Discord funcionahttps://brutusforge.meuclan.com/admin/license→ phone-home OK, banner verde- Bot Discord continua vendo API atraves do tunnel
Seguranca
Expor publicamente aumenta a superficie de ataque. Garanta:
JWT_SECRET64+ chars aleatorios (nao use default)GAME_AGENT_SECRET32+ chars aleatorios- Backup automatico do Postgres (scripts em
scripts/backup-db.sh) - Firewall: bloqueie acesso direto as portas 3000/3001 (deixe so via tunnel/proxy)
- Discord roles: revise
DISCORD_ADMIN_ROLE_IDS— apenas usuarios confiaveis
Suporte
Duvidas ou configuracao especifica do seu ambiente: suporte@brutusforge.lucassrdev.com.br.