Serves the deck via a small nginx container (docker compose up -d). The Dockerfile copies files individually rather than COPY . . so the speaker notes, design docs and local backups stay out of the image. Deck grows to 44 slides: adds a Vibe Coding slide covering AI-assisted programming, an EU AI Act slide with the four risk tiers, and expands the outlook from three to six trends. The HUD now also shows the current chapter name, resolved from the slide manifest.
40 lines
1.3 KiB
Nginx Configuration File
40 lines
1.3 KiB
Nginx Configuration File
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;
|
|
}
|