e3c7bf2e74
build / build (push) Successful in 17s
Single self-contained index.html (avatar + favicon inlined; only Google Fonts external; zero JS; dark-mode; responsive) served by a baked nginx:alpine image behind Traefik, built and published by CI on push to main and rolled out by Watchtower. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LbhPvfSERrnuY5jdhAdB7v
24 lines
777 B
Nginx Configuration File
24 lines
777 B
Nginx Configuration File
server {
|
|
listen 80;
|
|
server_name _;
|
|
root /usr/share/nginx/html;
|
|
index index.html;
|
|
|
|
# Compress the (mostly text) payload. The inlined base64 avatar doesn't
|
|
# shrink much, but the HTML/SVG/CSS around it does.
|
|
gzip on;
|
|
gzip_comp_level 5;
|
|
gzip_min_length 256;
|
|
gzip_types text/html text/css application/javascript image/svg+xml application/json application/xml;
|
|
|
|
# It's a two-file site. Revalidate so copy edits (git pull, no restart)
|
|
# go live on the next refresh instead of sticking in a cache.
|
|
add_header Cache-Control "no-cache" always;
|
|
add_header X-Content-Type-Options "nosniff" always;
|
|
add_header Referrer-Policy "strict-origin-when-cross-origin" always;
|
|
|
|
location / {
|
|
try_files $uri $uri/ =404;
|
|
}
|
|
}
|