2026-07-25 01:04:17 +01:00
|
|
|
[general]
|
|
|
|
|
|
|
|
|
|
#### Server
|
|
|
|
|
|
|
|
|
|
# Listen on all interfaces, port 80 (matches previous nginx setup)
|
|
|
|
|
host = "0.0.0.0"
|
|
|
|
|
port = 80
|
|
|
|
|
|
|
|
|
|
# Root directory of the static site (Hugo `public/` output)
|
|
|
|
|
root = "/public"
|
|
|
|
|
|
|
|
|
|
# Number of worker threads (0 = auto-detect based on CPU cores)
|
|
|
|
|
threads-multiplier = 1
|
|
|
|
|
|
|
|
|
|
# Log level
|
|
|
|
|
log-level = "info"
|
|
|
|
|
|
|
|
|
|
#### Performance / caching
|
|
|
|
|
|
2026-07-25 01:09:42 +01:00
|
|
|
# Compression is handled by the upstream reverse proxy, so it is disabled
|
|
|
|
|
# here to avoid doing the work twice (wasted CPU per request). Re-enable if
|
|
|
|
|
# SWS is ever exposed directly without a compressing proxy in front.
|
|
|
|
|
compression = false
|
|
|
|
|
compression-static = false
|
2026-07-25 01:04:17 +01:00
|
|
|
|
|
|
|
|
# Emit Cache-Control + ETag headers with sensible per-content-type defaults.
|
2026-07-25 01:09:42 +01:00
|
|
|
# The origin is the correct place to declare cacheability; the proxy/CDN
|
|
|
|
|
# passes these through. SWS applies long-lived caching to static assets
|
|
|
|
|
# (images, css, js, fonts) and short/no-cache to HTML.
|
2026-07-25 01:04:17 +01:00
|
|
|
cache-control-headers = true
|
|
|
|
|
|
|
|
|
|
#### Routing
|
|
|
|
|
|
2026-07-25 03:36:50 +01:00
|
|
|
# No SPA-style page fallback: this is a static Hugo site, not a single-page app.
|
|
|
|
|
# Missing paths should return Hugo's generated 404.html with a real 404 status
|
|
|
|
|
# (SWS serves /public/404.html automatically) rather than masking broken links
|
|
|
|
|
# with a 200 homepage response, which harms SEO (soft 404s).
|
2026-07-25 01:04:17 +01:00
|
|
|
|
|
|
|
|
#### Security
|
|
|
|
|
|
2026-07-25 01:09:42 +01:00
|
|
|
# Security headers are set by the upstream reverse proxy, so they are
|
|
|
|
|
# disabled here to avoid duplicate/conflicting headers. Let one layer own
|
|
|
|
|
# the security posture. Re-enable if SWS is exposed without such a proxy.
|
|
|
|
|
security-headers = false
|
2026-07-25 01:04:17 +01:00
|
|
|
|
|
|
|
|
# Health endpoint at /health for container/K8s liveness probes
|
|
|
|
|
health = true
|