Files
website/Caddyfile
T
2026-07-28 15:54:22 +08:00

47 lines
1.2 KiB
Caddyfile

# Caddy reverse proxy for Eversolo Web
# Domain: test.luxsin.com.cn
# Caddy automatically obtains and renews SSL certificates via Let's Encrypt / ZeroSSL.
# HTTP (port 80) is automatically redirected to HTTPS.
test.luxsin.com.cn {
# Security headers (applied to all responses)
header {
X-Content-Type-Options nosniff
X-Frame-Options SAMEORIGIN
Referrer-Policy strict-origin-when-cross-origin
}
# Payload uploads served directly from the persistent data volume.
# docker-compose mounts ./data/{media,files,videos} -> /srv/uploads/{media,files,videos}
# handle creates an exclusive route: once matched, the request never falls through to the app.
handle /media/* {
root * /srv/uploads
header Cache-Control "public, max-age=2592000, immutable"
file_server
}
handle /files/* {
root * /srv/uploads
header Cache-Control "public, max-age=604800"
file_server
}
handle /videos/* {
root * /srv/uploads
header Cache-Control "public, max-age=2592000"
file_server
}
# Everything else -> Next.js app (port 3000)
# WebSocket upgrade headers are handled automatically by Caddy.
handle {
reverse_proxy app:3000 {
header_up X-Real-IP {remote_host}
transport http {
read_timeout 300s
write_timeout 300s
}
}
}
}