forked from Rockachopa/Timmy-time-dashboard
37 lines
878 B
Caddyfile
37 lines
878 B
Caddyfile
|
|
# ── Timmy Time — Caddy Reverse Proxy ─────────────────────────────────────────
|
||
|
|
#
|
||
|
|
# Automatic HTTPS via Let's Encrypt.
|
||
|
|
# Set DOMAIN env var or replace {$DOMAIN} below.
|
||
|
|
#
|
||
|
|
# For local/IP-only access (no domain), Caddy serves on :80 without TLS.
|
||
|
|
|
||
|
|
{$DOMAIN:localhost} {
|
||
|
|
# Reverse proxy to the FastAPI dashboard
|
||
|
|
reverse_proxy dashboard:8000
|
||
|
|
|
||
|
|
# WebSocket support (swarm live updates)
|
||
|
|
@websocket {
|
||
|
|
header Connection *Upgrade*
|
||
|
|
header Upgrade websocket
|
||
|
|
}
|
||
|
|
reverse_proxy @websocket dashboard:8000
|
||
|
|
|
||
|
|
# Security headers
|
||
|
|
header {
|
||
|
|
X-Content-Type-Options nosniff
|
||
|
|
X-Frame-Options SAMEORIGIN
|
||
|
|
Referrer-Policy strict-origin-when-cross-origin
|
||
|
|
X-XSS-Protection "1; mode=block"
|
||
|
|
-Server
|
||
|
|
}
|
||
|
|
|
||
|
|
# Gzip compression
|
||
|
|
encode gzip zstd
|
||
|
|
|
||
|
|
# Access logging
|
||
|
|
log {
|
||
|
|
output stdout
|
||
|
|
format console
|
||
|
|
}
|
||
|
|
}
|