meldestelle/config/docker/caddy/web-app/Caddyfile
Stefan Mogeritsch 0ce94203fe
All checks were successful
Build and Publish Docker Images / build-and-push (., backend/infrastructure/gateway/Dockerfile, api-gateway, api-gateway) (push) Successful in 7m24s
Build and Publish Docker Images / build-and-push (., backend/services/ping/Dockerfile, ping-service, ping-service) (push) Successful in 7m3s
Build and Publish Docker Images / build-and-push (., config/docker/caddy/web-app/Dockerfile, web-app, web-app) (push) Successful in 1m46s
Build and Publish Docker Images / build-and-push (., config/docker/keycloak/Dockerfile, keycloak, keycloak) (push) Successful in 1m39s
docs: archive old screenshots and update Caddyfile configuration
- Moved outdated screenshots to the `archive` directory for better organization.
- Refined Caddyfile formatting and improved routing logic, including API proxy and SPA fallback behavior.
- Added new screenshots for Pangolin web app settings.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
2026-03-13 11:19:45 +01:00

65 lines
1.3 KiB
Caddyfile

# Caddyfile
{
# Global options
servers {
metrics
}
}
# Define the site
app.mo-code.at:4000, :4000 {
# Root directory for static files
root * /usr/share/caddy
# Access Logs (JSON format for Docker)
log {
output stdout
format json
}
# Enable Gzip/Zstd compression
encode gzip zstd
# Templates for runtime configuration (config.json)
templates {
mime application/json
}
# Cache Control for static assets (immutable)
@static {
file
path *.js *.css *.png *.jpg *.svg *.wasm
}
header @static Cache-Control "public, max-age=31536000, immutable"
# Security Headers
header {
Cross-Origin-Opener-Policy "same-origin"
Cross-Origin-Embedder-Policy "require-corp"
X-Content-Type-Options "nosniff"
X-Frame-Options "DENY"
Referrer-Policy "strict-origin-when-cross-origin"
Permissions-Policy "camera=(), microphone=(), geolocation=()"
}
# --- ROUTING LOGIC ---
# 1. API Proxy
handle /api/* {
reverse_proxy api-gateway:8081
}
# 2. Health Check
handle /health {
respond "healthy" 200
}
# 3. Static Files & SPA Fallback
handle {
try_files {path} /index.html
file_server
}
}