Hördle Bot f22aea6341 fix: Force dynamic rendering and improve error handling
- Add 'force-dynamic' to app/page.tsx to ensure daily puzzle is generated on every request
- Improve error message in Game component when no puzzle is available
- Add logging to getDailyPuzzle for debugging
2025-11-21 16:25:01 +01:00
2025-11-21 12:25:19 +01:00
2025-11-21 12:25:19 +01:00
2025-11-21 12:25:19 +01:00
2025-11-21 12:25:19 +01:00
2025-11-21 12:25:19 +01:00
2025-11-21 12:25:19 +01:00

Hördle

Eine Web-App inspiriert von Heardle, bei der Nutzer täglich einen Song anhand kurzer Audio-Schnipsel erraten müssen.

Features

  • Tägliches Rätsel: Jeden Tag ein neuer Song für alle Nutzer.
  • Inkrementelle Hinweise: Startet mit 2 Sekunden, dann 4s, 7s, 11s, 16s, bis 30s.
  • Admin Dashboard:
    • Upload von MP3-Dateien.
    • Automatische Extraktion von ID3-Tags (Titel, Interpret).
    • Bearbeitung von Metadaten.
    • Sortierbare Song-Bibliothek.
  • Teilen-Funktion: Ergebnisse können als Emoji-Grid geteilt werden.
  • Persistenz: Spielstatus wird lokal im Browser gespeichert.

Tech Stack

  • Framework: Next.js 14 (App Router)
  • Styling: Vanilla CSS
  • Datenbank: SQLite (via Prisma ORM)
  • Deployment: Docker & Docker Compose

Lokale Entwicklung

  1. Abhängigkeiten installieren:

    npm install
    
  2. Datenbank initialisieren:

    npx prisma generate
    npx prisma db push
    
  3. Entwicklungsserver starten:

    npm run dev
    

    Die App läuft unter http://localhost:3000.

Deployment mit Docker

Das Projekt ist für den Betrieb mit Docker optimiert.

  1. Vorbereitung: Kopiere die Beispiel-Konfiguration:

    cp docker-compose.example.yml docker-compose.yml
    

    Passe ggf. das ADMIN_PASSWORD in der docker-compose.yml an.

  2. Starten:

    docker compose up --build -d
    

    Die App ist unter http://localhost:3010 erreichbar (Port in docker-compose.yml konfiguriert).

  3. Daten-Persistenz:

    • Die SQLite-Datenbank wird im Ordner ./data gespeichert.
    • Hochgeladene Songs liegen in ./public/uploads.
    • Beide Ordner werden als Docker Volumes eingebunden, sodass Daten auch bei Container-Neustarts erhalten bleiben.
  4. Admin-Zugang:

    • URL: /admin
    • Standard-Passwort: admin123 (Bitte in docker-compose.yml ändern!)

Lizenz

MIT

Description
No description provided
Readme 1.9 MiB
Languages
TypeScript 90.7%
JavaScript 3.8%
CSS 3.3%
Dockerfile 1.2%
Shell 1%