Files
sendico/ci/dev/Caddyfile.dev
2026-01-30 16:58:02 +01:00

102 lines
2.3 KiB
Caddyfile

########################################
# Development Caddyfile for Sendico
########################################
{
# No ACME email needed for local dev
auto_https off
}
:80 {
vars static_root /usr/share/pweb
encode zstd gzip
route {
########################################
# Backend API - proxy to dev-bff
########################################
handle /api/v1/* {
reverse_proxy dev-bff:8080 {
health_uri /api/v1/health
health_interval 15s
health_timeout 4s
health_status 2xx
}
header Cache-Control "no-cache, no-store, must-revalidate"
}
# Telegram webhook -> notification service
handle /telegram/webhook {
reverse_proxy dev-notification:8081
}
# Monetix callbacks -> mntx gateway
handle /gateway/m/* {
rewrite * /monetix/callback
reverse_proxy dev-mntx-gateway:8084
header Cache-Control "no-cache, no-store, must-revalidate"
}
########################################
# Static assets
########################################
handle /version.json {
root * {vars.static_root}
file_server
header Cache-Control "no-cache"
}
handle /*.js {
root * {vars.static_root}
file_server
header Cache-Control "public, max-age=3600"
}
handle /assets/* {
root * {vars.static_root}
file_server
header Cache-Control "public, max-age=86400"
}
handle /canvaskit/* {
root * {vars.static_root}
file_server
header Cache-Control "public, max-age=86400"
}
handle /icons/* {
root * {vars.static_root}
file_server
header Cache-Control "public, max-age=86400"
}
handle /*.html {
root * {vars.static_root}
file_server
header Cache-Control "no-cache"
}
handle /*.css {
root * {vars.static_root}
file_server
header Cache-Control "public, max-age=3600"
}
handle /*.json {
root * {vars.static_root}
file_server
header Cache-Control "public, max-age=3600"
}
########################################
# SPA fallback - serves index.html for all routes
########################################
handle {
root * {vars.static_root}
try_files {path} /index.html
file_server
header Cache-Control "no-cache"
}
}
}