forked from noxious/client
71 lines
1.5 KiB
Caddyfile
71 lines
1.5 KiB
Caddyfile
{
|
|
# Global options
|
|
admin off # Disable admin API
|
|
|
|
# Global logging configuration
|
|
log {
|
|
output file /var/log/caddy/access.log
|
|
format json
|
|
level INFO
|
|
}
|
|
}
|
|
|
|
noxious.gg {
|
|
# Root directory for your Vue app
|
|
root * ./dist
|
|
|
|
# Enable compression with optimal settings
|
|
encode zstd gzip
|
|
|
|
# Handle SPA routing
|
|
try_files {path} /index.html
|
|
|
|
# Serve static files with optimizations
|
|
file_server
|
|
|
|
# Enhanced security headers
|
|
header {
|
|
# Existing headers with improvements
|
|
X-Frame-Options "SAMEORIGIN"
|
|
X-XSS-Protection "1; mode=block"
|
|
X-Content-Type-Options "nosniff"
|
|
Referrer-Policy "strict-origin-when-cross-origin"
|
|
|
|
# Additional security headers
|
|
Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
|
|
Permissions-Policy "accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()"
|
|
|
|
# Remove server information
|
|
-Server
|
|
}
|
|
|
|
# Improved cache configuration for static assets
|
|
@static {
|
|
file
|
|
path *.js *.css *.png *.jpg *.jpeg *.gif *.ico *.svg *.woff *.woff2 *.ttf *.eot
|
|
}
|
|
header @static {
|
|
Cache-Control "public, max-age=31536000, immutable"
|
|
Vary Accept-Encoding
|
|
}
|
|
|
|
# Cache control for HTML files
|
|
@html {
|
|
file
|
|
path *.html
|
|
}
|
|
header @html {
|
|
Cache-Control "no-cache, must-revalidate"
|
|
}
|
|
|
|
# Handle errors
|
|
handle_errors {
|
|
respond "{http.error.status_code} {http.error.status_text}" {http.error.status_code}
|
|
}
|
|
}
|
|
|
|
# Improved redirect configuration
|
|
www.noxious.gg {
|
|
redir https://noxious.gg{uri} permanent
|
|
}
|