kotalk/deploy/Caddyfile
ian 799b975406
Some checks are pending
ci / server (push) Waiting to run
ci / web (push) Waiting to run
ci / desktop-windows (push) Waiting to run
공개: 플랫폼 결론과 릴리즈 노트 규칙 반영
2026-04-16 13:54:11 +09:00

60 lines
2.1 KiB
Caddyfile

{
email {$ACME_EMAIL}
}
{$DOWNLOAD_HOST} {
encode zstd gzip
root * /srv/download
redir /windows /windows/latest 302
redir /android /android/latest 302
redir /windows/latest /latest/windows/index.html 302
redir /android/latest /latest/android/index.html 302
redir /latest /latest/version.json 302
header {
Content-Security-Policy "default-src 'none'; frame-ancestors 'none'; base-uri 'none'"
Cross-Origin-Resource-Policy "same-origin"
Permissions-Policy "accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()"
Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
X-Content-Type-Options "nosniff"
X-Frame-Options "DENY"
Referrer-Policy "strict-origin-when-cross-origin"
X-Robots-Tag "noindex, nofollow"
}
file_server
}
{$WEBAPP_HOST:vstalk.phy.kr} {
encode zstd gzip
header {
Content-Security-Policy "default-src 'self'; img-src 'self' data:; style-src 'self' 'unsafe-inline'; script-src 'self'; connect-src 'self' https: wss:; object-src 'none'; base-uri 'self'; frame-ancestors 'none'"
Cross-Origin-Opener-Policy "same-origin"
Cross-Origin-Resource-Policy "same-origin"
Permissions-Policy "accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()"
Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
X-Content-Type-Options "nosniff"
X-Frame-Options "DENY"
Referrer-Policy "strict-origin-when-cross-origin"
}
handle /v1/* {
reverse_proxy api:8080
}
handle /health {
reverse_proxy api:8080
}
handle {
reverse_proxy webapp:80
}
}
{$API_HOST} {
encode zstd gzip
header {
Content-Security-Policy "default-src 'none'; frame-ancestors 'none'; base-uri 'none'"
Cross-Origin-Resource-Policy "same-origin"
Permissions-Policy "accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()"
Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
X-Content-Type-Options "nosniff"
Referrer-Policy "strict-origin-when-cross-origin"
}
reverse_proxy api:8080
}