54 lines
1.2 KiB
Caddyfile
54 lines
1.2 KiB
Caddyfile
# Caddyfile for Media Gallery
|
|
# Automatic HTTPS with self-signed certificates for localhost
|
|
|
|
localhost:443 {
|
|
# Frontend
|
|
reverse_proxy localhost:3001 {
|
|
# Enable websocket for Vite HMR
|
|
header_up Upgrade {http.request.header.Upgrade}
|
|
header_up Connection {http.request.header.Connection}
|
|
}
|
|
|
|
# API endpoints
|
|
handle /api/* {
|
|
reverse_proxy localhost:8000 {
|
|
# Disable buffering for video streaming
|
|
flush_interval -1
|
|
}
|
|
}
|
|
|
|
# Enable logging
|
|
log {
|
|
output file ./caddy-access.log {
|
|
roll_size 10mb
|
|
roll_keep 5
|
|
}
|
|
format json
|
|
}
|
|
|
|
# Enable compression
|
|
encode gzip zstd
|
|
|
|
# Security headers
|
|
header {
|
|
# Enable HSTS
|
|
Strict-Transport-Security "max-age=31536000; includeSubDomains"
|
|
# Prevent clickjacking
|
|
X-Frame-Options "SAMEORIGIN"
|
|
# Prevent MIME sniffing
|
|
X-Content-Type-Options "nosniff"
|
|
# XSS Protection
|
|
X-XSS-Protection "1; mode=block"
|
|
}
|
|
}
|
|
|
|
# For production with a real domain, use:
|
|
# yourdomain.com {
|
|
# reverse_proxy localhost:3001
|
|
# handle /api/* {
|
|
# reverse_proxy localhost:8000 {
|
|
# flush_interval -1
|
|
# }
|
|
# }
|
|
# }
|