PolzeSoft / blöki / Hilfe & Dokumentation

blöki

bloeki.html · GitHub

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.

Beta: blöki ist derzeit Version v0.1.0-beta. Das Projekt ist als selbst gehostete Web-App gebaut, die Trailer bleiben lokal auf Rechner, NAS oder Server — kein externer Video- oder Musikdienst.

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.

1
.env anlegencp .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).
2
Trailer-Ordner einbindenStandardmäßig nutzt Docker Compose den lokalen Ordner ./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.
3
Startendocker 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.

1
Admin anlegenBenutzername, E-Mail und Passwort eintragen.
2
Selbsttest ausführenDer Assistent prüft die Grundfunktion der Instanz.
3
AnmeldenDanach ist der Admin-Account einsatzbereit.
Nur einmal gültig: Der Setup-Token funktioniert nur, solange noch kein Admin-Account existiert.

Trailer-Bibliothek

blöki spielt keine kompletten Trailer-Dateien ab, sondern fertige kurze Snippets im Namensschema:

trailer-<Titel> (<Jahr>) {imdb-id <imdb-id>}.mp4
Beispiel: trailer-The Matrix (1999) {imdb-id tt0133093}.mp4

Das 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).

1
Tool starten, Ordner wählen anklicken und einen Ordner mit Trailer-Dateien auswählen.
2
Links eine Datei auswählen, Titel und Jahr prüfen oder korrigieren.
3
Bei TMDB suchen klicken und den passenden Treffer auswählen, dann Treffer übernehmen & umbenennen.

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.

Hinweis: Das Tool arbeitet nicht rekursiv — es listet nur Dateien direkt im gewählten Ordner. Existiert eine Zieldatei bereits, fragt das Tool nach dem weiteren Vorgehen.

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).

1
Quellordner mit den umbenannten Trailern wählen.
2
Zielordner wählen, den blöki als Trailer-Bibliothek scannt.
3
Startsekunde (Standard 30) und Länge (Standard 25) einstellen, dann Start klicken.

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.

Keine Trailer im Spiel? Prüfen, ob .mp4-Dateien im gemounteten Ordner liegen, Namen und IMDb-ID-Schema stimmen, der Docker-Mount wirklich auf den Zielordner zeigt und ob es Backend-Logmeldungen zum Trailer-Scan gibt.

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

1
Countdownstartet vor jeder Runde.
2
Trailer-Snippetläuft (25 Sekunden).
3
Guessing-Fensteröffnet für 10 Sekunden.
4
EinordnenSpieler platzieren den Film auf ihrer eigenen Zeitleiste.
5
Auflösungzeigt Titel, Jahr und Platzierung.
6
SiegNächste Runde startet, bis jemand 10 korrekt platzierte Karten erreicht.

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:

BereichFunktion
TrailerTrailer-Bibliothek scannen und prüfen
TischeTische überwachen und bei Bedarf löschen
EinladungenEinladungen erstellen und verwalten
BenutzerRechte für Einladungserstellung vergeben oder entziehen
KommunikationKommunikationseinstellungen 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.

Integrationstests lokal sicher ausführen: 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

ProblemLösung
Backend startet nicht wegen JWT_SECRETEchten Wert (mind. 32 Zeichen) in .env setzen
Setup-Link zeigt falsche AdresseFRONTEND_URL in .env setzen, Container neu starten
Keine Trailer im SpielSnippet-Ordner, Namensschema und Docker-Mount prüfen, danach manuellen Scan im Admin-Bereich ausführen
Snippet-Cutter schneidet nichtffmpeg -version / ffprobe -version prüfen, Schreibrechte auf Quell-/Zielordner kontrollieren
TMDB-Suche funktioniert nichtAPI-Key und Internetverbindung prüfen, alternativ Jahr/IMDb-ID manuell eintragen
Port belegtFRONTEND_HOST_PORT in .env anpassen, danach docker compose up --build

Rechtliches & Versionsstand

Aktueller Stand: Beta (v0.1.0-beta). Änderungsverlauf siehe GitHub Releases.