Add Docker deployment, EU AI Act slide, and chapter name in HUD

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.
This commit is contained in:
Erik Thiele
2026-07-31 10:36:34 +02:00
parent 66204e6f63
commit 64f057a7c0
7 changed files with 265 additions and 44 deletions

23
Dockerfile Normal file
View File

@@ -0,0 +1,23 @@
# Statisches Deck via nginx ausliefern — kein Build-Schritt, kein Node.
FROM nginx:alpine
# Eigene Server-Config (macht ki-verstehen.html zur Startseite, schaltet gzip an)
COPY nginx.conf /etc/nginx/conf.d/default.conf
# nginx-Willkommensseite entfernen, sonst liegt sie unter /index.html im Webroot
RUN rm -f /usr/share/nginx/html/index.html
# WICHTIG: Dateien einzeln kopieren, NICHT `COPY . .` —
# Sprecher.md enthält die Sprechernotizen und darf nicht im Web landen.
# Dasselbe gilt für DESIGN.md/PATTERNS.md und die lokalen Backup-Dateien.
COPY ki-verstehen.html /usr/share/nginx/html/
COPY config.html /usr/share/nginx/html/
COPY slides-manifest.js /usr/share/nginx/html/
COPY font-vorschau.html /usr/share/nginx/html/
EXPOSE 80
# Bewusst 127.0.0.1 statt localhost: nginx lauscht hier nur auf IPv4,
# "localhost" löst im Container aber zuerst auf ::1 auf -> Connection refused.
HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
CMD wget -qO- http://127.0.0.1/ >/dev/null || exit 1