server { listen 80; server_name _; root /usr/share/nginx/html; # Das Deck ist die Startseite — "/" öffnet direkt die Präsentation. index ki-verstehen.html; # Redirects relativ halten. Sonst baut nginx sie absolut zusammen und # verliert dabei den gemappten Port (localhost/... statt localhost:8080/...). absolute_redirect off; # Das Deck ist eine einzige ~160 KB große HTML-Datei — gzip lohnt sich deutlich. gzip on; gzip_types text/html text/css application/javascript image/svg+xml; gzip_min_length 1024; # HTML/JS nicht cachen: Nach einem Deck-Update soll ein Reload sofort # die neue Fassung zeigen, nicht die vom letzten Vortrag. location ~* \.(html|js)$ { add_header Cache-Control "no-cache, must-revalidate"; } # Wenn jemand /config aufruft, auf die Konfigurator-Seite auflösen location = /config { return 302 /config.html; } location / { try_files $uri $uri/ =404; } # Sicherheits-Basics. Bewusst keine strikte CSP: Das Deck lädt die # Fonts von api.fontshare.com, eine zu enge Policy würde die Typografie brechen. add_header X-Content-Type-Options "nosniff" always; add_header X-Frame-Options "SAMEORIGIN" always; add_header Referrer-Policy "no-referrer-when-downgrade" always; }