Eine containerisierte Quiz-Webanwendung mit Token-basiertem Zugang und Admin-Interface.
- Quiz-Frontend – Token-geschütztes Quiz-Interface für Teilnehmer
- Admin-Interface – Fragen verwalten, Tokens erstellen, Ergebnisse einsehen
- Persistente Daten – SQLite-Datenbank mit Volume-Mount
- Bereit für Podman/Docker
podman build -t quiz-app .podman run -d \
--name quiz \
-p 3000:3000 \
-v quiz-data:/data \
-e ADMIN_SECRET=meinGeheimesPasswort \
quiz-app| URL | Beschreibung |
|---|---|
http://localhost:3000/quiz |
Quiz für Teilnehmer |
http://localhost:3000/admin |
Admin-Interface |
| Variable | Standard | Beschreibung |
|---|---|---|
PORT |
3000 |
HTTP-Port |
DB_PATH |
/data/quiz.db |
Pfad zur SQLite-Datenbank |
ADMIN_SECRET |
admin1234 |
Admin-Passwort (unbedingt ändern!) |
- Gehe zu
/adminund melde dich mit dem Admin-Passwort an - Fragen – Erstelle Fragen mit mehreren Antwortmöglichkeiten
- Tokens – Erstelle Tokens für Teilnehmer (einzeln oder in Massen)
- Teile die Tokens mit den Teilnehmern
- Ergebnisse – Beobachte die Ergebnisse in Echtzeit
- Gehe zu
/quiz - Gib deinen Token ein (oder nutze
/quiz?token=DEIN-TOKEN) - Beantworte die Fragen – jede kann nur einmal beantwortet werden
- Am Ende siehst du dein Ergebnis
Erstelle eine compose.yaml:
services:
quiz:
image: quiz-app
build: .
ports:
- "3000:3000"
volumes:
- quiz-data:/data
environment:
- ADMIN_SECRET=meinGeheimesPasswort
restart: unless-stopped
volumes:
quiz-data:Starten mit:
podman-compose up -dDie SQLite-Datenbank liegt im Volume /data/quiz.db. Für ein Backup:
podman cp quiz:/data/quiz.db ./backup-quiz.db- Backend: Node.js + Express + better-sqlite3
- Frontend: Vanilla HTML/CSS/JS (keine Abhängigkeiten)
- Datenbank: SQLite
- Container: Alpine Linux (Node 20)