2026-06-09 06:39:53 -03:00
|
|
|
{
|
|
|
|
|
email {$ACME_EMAIL}
|
|
|
|
|
# Em dev local (*.localhost) Caddy emite cert interno automaticamente.
|
|
|
|
|
# Em produção, Let's Encrypt entra pelos hostnames reais.
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# ----- Gitea (UI + git over HTTPS) -----
|
|
|
|
|
gitea.{$DOMAIN_BASE} {
|
|
|
|
|
encode zstd gzip
|
|
|
|
|
reverse_proxy gitea:3000 {
|
|
|
|
|
transport http {
|
|
|
|
|
response_header_timeout 10m
|
|
|
|
|
dial_timeout 30s
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# ----- Wedding (app dos noivos) -----
|
|
|
|
|
wedding.{$DOMAIN_BASE} {
|
|
|
|
|
encode zstd gzip
|
|
|
|
|
request_body {
|
|
|
|
|
max_size 600MB
|
|
|
|
|
}
|
|
|
|
|
reverse_proxy wedding_app:3000 {
|
|
|
|
|
transport http {
|
|
|
|
|
response_header_timeout 10m
|
|
|
|
|
dial_timeout 30s
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# ----- pgAdmin -----
|
|
|
|
|
pgadmin.{$DOMAIN_BASE} {
|
|
|
|
|
encode gzip
|
|
|
|
|
reverse_proxy pgadmin:80
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# ----- MinIO console (admin web) -----
|
|
|
|
|
minio.{$DOMAIN_BASE} {
|
|
|
|
|
encode gzip
|
|
|
|
|
reverse_proxy minio:9001
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
# ----- MinIO S3 API público (uploads/downloads do bucket) -----
|
|
|
|
|
media.{$DOMAIN_BASE} {
|
|
|
|
|
encode gzip
|
2026-06-09 11:03:20 -03:00
|
|
|
# NÃO reescrever o Host: as URLs pré-assinadas (SigV4) incluem o header
|
|
|
|
|
# `host` na assinatura, calculado com `media.{DOMAIN_BASE}`. O Caddy
|
|
|
|
|
# repassa o Host original por padrão; reescrever pra `minio:9000`
|
|
|
|
|
# quebraria a assinatura (SignatureDoesNotMatch / 403 no PUT).
|
|
|
|
|
reverse_proxy minio:9000
|
2026-06-09 06:39:53 -03:00
|
|
|
}
|