blöki
blöki ist ein lokales Video-Trailer-Zeitleistenratespiel: Spielerinnen und Spieler sehen einen kurzen Filmtrailer-Ausschnitt, raten das Erscheinungsjahr und ordnen den Film auf einer gemeinsamen Zeitleiste ein. Wer zuerst 10 korrekt platzierte Karten gesammelt hat, gewinnt.
Was ist blöki?
Das visuelle Pendant zu Adolar Songster: statt Songs werden 25-sekündige Filmtrailer-Ausschnitte gehört/gesehen. Nach dem Trailer folgt ein 10-sekündiges Einordnungsfenster („guessing“), bevor die Runde aufgelöst wird. Wer zuerst 10 korrekt platzierte Karten hat, gewinnt.
Installation der Web-App
Voraussetzungen: Docker und Docker Compose, ein Ordner für die fertigen Trailer-Snippets sowie Zugriff auf den Rechner oder Server, auf dem blöki laufen soll.
cp .env.example .env und mindestens JWT_SECRET setzen (mindestens 32 Zeichen, z. B. mit openssl rand -hex 32). Optional FRONTEND_HOST_PORT anpassen (Standard 5174)../bloeki-clips. Liegen die Snippets auf einer anderen Platte oder NAS-Freigabe, per docker-compose.override.yml mounten, z. B. V:/bloeki-clips:/data/clips:ro.docker compose up --build — die Web-App läuft danach unter http://localhost:5174, aus dem Netzwerk erreichbar über IP-Adresse oder Hostnamen des Servers.Ersteinrichtung
Beim ersten Start schreibt das Backend einen Setup-Link mit Token in die Logs (docker compose logs backend, Suche nach SETUP TOKEN). Link öffnen oder /setup aufrufen und den Token eintragen.
Trailer-Bibliothek
blöki spielt keine kompletten Trailer-Dateien ab, sondern fertige kurze Snippets im Namensschema:
trailer-<Titel> (<Jahr>) {imdb-id <imdb-id>}.mp4Beispiel:
trailer-The Matrix (1999) {imdb-id tt0133093}.mp4Das Jahr ist das Erscheinungsjahr, das später geraten wird; die IMDb-ID macht den Film eindeutig. Empfohlener Workflow: Original-Trailer sammeln → mit TrailerRenamerGui.exe umbenennen → mit SnippetCutterGui.exe zuschneiden → Zielordner vom Backend scannen lassen.
TrailerRenamerGui.exe
Benennt lose Trailer-Dateien mit Hilfe von TMDB oder manueller IMDb-ID in das blöki-Schema um. Voraussetzungen: Windows x64, für die TMDB-Suche ein kostenloser TMDB-API-Key (gespeichert lokal unter %AppData%\bloeki\trailer-renamer-gui\settings.json).
Findet TMDB nichts Passendes: Film selbst bei IMDb suchen, IMDb-ID im Format tt... und Jahr manuell eintragen, dann Manuell umbenennen.
Unterstützte Eingangsformate u. a.: .mkv, .mp4, .avi, .mov, .webm, .wmv, .m4v, .ts.
SnippetCutterGui.exe
Schneidet aus umbenannten Trailern kurze .mp4-Snippets. Voraussetzungen: Windows x64 sowie ffmpeg und ffprobe im PATH (prüfbar mit ffmpeg -version / ffprobe -version).
Bereits vorhandene Snippets werden übersprungen, bei zu kurzen Trailern wird der Startpunkt automatisch angepasst. Abbrechen beendet den laufenden ffmpeg-Prozess; unvollständige Teildateien werden nicht als fertige Snippets übernommen.
Trailer in blöki scannen
Nach dem Schneiden entweder auf den automatischen Scan warten (Standard alle 15 Minuten) oder im Admin-Bereich Jetzt scannen auslösen.
Tisch erstellen & beitreten
Der erste Account entsteht im Setup-Assistenten als Admin, weitere Spieler können über Einladungen registriert werden. Nach der Anmeldung: Tisch erstellen öffnen, Tischname und Einstellungen wählen, Tisch erstellen — der Ersteller wird automatisch Tischleitung. Andere Spieler öffnen die Web-App auf ihrem eigenen Gerät, melden sich an und treten einem verfügbaren Tisch bei.
Rundenablauf
Display- & Host-Modus
Für gemeinsame Runden kann ein Host- oder Display-Gerät genutzt werden, z. B. TV, Beamer oder Wohnzimmer-PC. Ablauf: Tisch öffnen → Display-Link oder QR-Code erzeugen → Link auf dem Anzeige-Gerät öffnen → Spieler steuern ihre Eingaben auf den eigenen Geräten. Autorisierte Host-Geräte lassen sich im Profil verwalten.
Admin-Bereich
Erreichbar unter /admin, sobald als Admin angemeldet:
| Bereich | Funktion |
|---|---|
| Trailer | Trailer-Bibliothek scannen und prüfen |
| Tische | Tische überwachen und bei Bedarf löschen |
| Einladungen | Einladungen erstellen und verwalten |
| Benutzer | Rechte für Einladungserstellung vergeben oder entziehen |
| Kommunikation | Kommunikationseinstellungen pflegen |
Wartung
Logs ansehen: docker compose logs backend / frontend / db, live mit docker compose logs -f backend.
Aktualisieren: git pull gefolgt von docker compose up --build — Migrationen laufen über den migrate-Service.
npm run test:integration:local nutzt standardmäßig eine separate Datenbank bloeki_test auf localhost:15532, legt sie bei Bedarf an und migriert sie — die normale Entwicklungsdatenbank bloeki bleibt dabei erhalten.Stoppen: docker compose down (Datenbankdaten bleiben im Docker-Volume erhalten). Vollständig zurücksetzen (nur wenn die Datenbank gelöscht werden darf): docker compose down -v.
Fehlerbehebung
| Problem | Lösung |
|---|---|
| Backend startet nicht wegen JWT_SECRET | Echten Wert (mind. 32 Zeichen) in .env setzen |
| Setup-Link zeigt falsche Adresse | FRONTEND_URL in .env setzen, Container neu starten |
| Keine Trailer im Spiel | Snippet-Ordner, Namensschema und Docker-Mount prüfen, danach manuellen Scan im Admin-Bereich ausführen |
| Snippet-Cutter schneidet nicht | ffmpeg -version / ffprobe -version prüfen, Schreibrechte auf Quell-/Zielordner kontrollieren |
| TMDB-Suche funktioniert nicht | API-Key und Internetverbindung prüfen, alternativ Jahr/IMDb-ID manuell eintragen |
| Port belegt | FRONTEND_HOST_PORT in .env anpassen, danach docker compose up --build |
Rechtliches & Versionsstand
Aktueller Stand: Beta (v0.1.0-beta). Änderungsverlauf siehe GitHub Releases.