Files
DeskcommCRM/Caddyfile.single-server
betoartsandClaude Opus 5 7e818daea4 feat(kit): instalacao single-server — CRM e Supabase self-hosted na mesma VPS
Recorte do PR #714 (commits 783a0a9dc, c3c99696b, dd48f650e de @betoarts):
o instalador de uma pergunta (so o dominio), o override de compose e o
Caddyfile do modo single-server, o override do Supabase que prende Postgres e
gateway em loopback, a porta de entrada ubuntu-production-installer.sh e os
testes estruturais dos dois.

No kit, a mesma logica do autor reaplicada sobre a main atual (que mudou
desde a base do PR): dc/dc_files reconhecem SINGLE_SERVER=1, todo psql/pg_dump
efemero passa por pg_container (entra na bridge privada quando
PSQL_DOCKER_NETWORK existe), o validador da URL do Supabase prova o gateway
local antes de o Caddy existir, e o 1o admin e criado pelo gateway interno.

Fora deste recorte, de proposito: ENABLE_EMAIL_AUTOCONFIRM true (dependia da
fila de aprovacao de cadastro, que nao entra) e o preflight que apontava para
o GHCR do fork.

Refs: #714

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RccZbdYe8URAiWCpyvZimQ
2026-09-21 07:31:37 -03:00

32 lines
768 B
Caddyfile

# Um domínio, duas superfícies: as APIs públicas do Supabase seguem para o
# Envoy privado; todo o restante segue para o app. Studio e Postgres não são
# publicados.
{
email {$ACME_EMAIL}
}
{$DOMAIN} {
encode gzip
route {
# O webhook global do WAHA só pode ser chamado pela rede interna.
@waha_global path /api/v1/webhooks/waha
respond @waha_global 403
# Superfícies públicas necessárias aos SDKs Supabase no navegador.
@supabase path /auth/v1* /rest/v1* /realtime/v1* /storage/v1* /functions/v1* /graphql/v1*
reverse_proxy @supabase supabase-envoy:8000
@agentrun path /api/internal/agents/run*
reverse_proxy @agentrun app:3000 {
transport http {
read_timeout 320s
write_timeout 320s
}
}
reverse_proxy app:3000
}
}