evOo-local/infra/compose/Caddyfile.cloudflare.example
cynarAI 6c7eed7580 Initial clean evOo-local from f00577b
Fresh history cut from cynarAI/evoo antigravity-handoff/project-timeline
(Voice First + project timeline). Brand docs/titles as evOo; keep @rakazo/*
packages as tech debt. Excludes node_modules, caches, secrets, voice blobs.
2026-09-20 17:15:16 +02:00

53 lines
1.0 KiB
Caddyfile

{
order abort first
}
(cloudflare_only) {
# Keep in sync with https://www.cloudflare.com/ips/.
@direct_origin not remote_ip 173.245.48.0/20 103.21.244.0/22 103.22.200.0/22 103.31.4.0/22 141.101.64.0/18 108.162.192.0/18 190.93.240.0/20 188.114.96.0/20 197.234.240.0/22 198.41.128.0/17 162.158.0.0/15 104.16.0.0/13 104.24.0.0/14 172.64.0.0/13 131.0.72.0/22 2400:cb00::/32 2606:4700::/32 2803:f800::/32 2405:b500::/32 2405:8100::/32 2a06:98c0::/29 2c0f:f248::/32
abort @direct_origin
}
(deploy_retry) {
lb_try_duration 10s
lb_try_interval 250ms
}
http://{$RAKAZO_HOST:app.example.com} {
import cloudflare_only
redir https://{$RAKAZO_HOST:app.example.com}{uri} 308
}
:80 {
abort
}
{$RAKAZO_HOST:app.example.com} {
import cloudflare_only
encode zstd gzip
handle /health {
reverse_proxy api:3100 {
import deploy_retry
}
}
handle /api/* {
reverse_proxy api:3100 {
import deploy_retry
}
}
handle /rpc/* {
reverse_proxy api:3100 {
import deploy_retry
}
}
handle {
reverse_proxy web:5173 {
import deploy_retry
}
}
}