Files
hoerdle/README.md
2025-11-21 12:25:19 +01:00

65 lines
1.7 KiB
Markdown

# 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:
```bash
npm install
```
2. Datenbank initialisieren:
```bash
npx prisma generate
npx prisma db push
```
3. Entwicklungsserver starten:
```bash
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. **Starten:**
```bash
docker compose up --build -d
```
Die App ist unter `http://localhost:3010` erreichbar (Port in `docker-compose.yml` konfiguriert).
2. **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.
3. **Admin-Zugang:**
- URL: `/admin`
- Standard-Passwort: `admin123` (Bitte in `docker-compose.yml` ändern!)
## Lizenz
MIT