51 lines
1.9 KiB
Markdown
51 lines
1.9 KiB
Markdown
# 1 bis 8 Party – Mobile Web-App
|
||
|
||
Das ultimative Gesellschaftsspiel über Selbsteinschätzung, Vorurteile und echte
|
||
Offenbarungen – als mobile Multiplayer-Web-App: offizielle Spielregeln, 20
|
||
Statement-Karten in 5 Kategorien und ein interaktiver Spielleiter für 3–8
|
||
Spieler. **Jeder spielt und stimmt auf seinem eigenen Handy ab:** Ein Host
|
||
eröffnet einen Spielraum und gibt den 4-stelligen Code weiter; sobald alle
|
||
Spieler „Ready“ melden, startet das Spiel automatisch.
|
||
|
||
**Live:** https://1bis.hocks.eu/ (Alias: https://1bis8.hocks.eu/)
|
||
|
||
## Struktur
|
||
|
||
| Pfad | Inhalt |
|
||
|---|---|
|
||
| `app/` | React + TypeScript + Vite + Tailwind (Quelle der Web-App) |
|
||
| `app/src/data/game.ts` | Kategorien, 20 Statement-Karten, Regelwerk-Texte |
|
||
| `app/src/lib/api.ts` | Client für die Game-API (Räume, Ready, Rankings) |
|
||
| `server/game/api/server.js` | Game-API: Spielräume, Auto-Start, Punkteberechnung |
|
||
| `server/web/`, `server/mail/` | nginx-Web-Stack und Postfix-Relay + Mail-API |
|
||
| `docs/` | Original-Spielregeln (PDF) |
|
||
|
||
## Entwicklung
|
||
|
||
```bash
|
||
cd app
|
||
npm install
|
||
npm run dev # Dev-Server (Port 3000, --port für andere Ports)
|
||
npm run build # Produktions-Build → app/dist/
|
||
```
|
||
|
||
## Deployment (VPS 82.165.218.97, /opt/1bis8)
|
||
|
||
**Automatisch:** Bei jedem Push auf `main` baut die Gitea-Action
|
||
(`.gitea/workflows/deploy.yml`) die App und kopiert `dist/` auf den Server –
|
||
der Web-Container nutzt das Verzeichnis als Laufzeit-Mount und nimmt die
|
||
Änderungen sofort an. Anschließend läuft ein Health-Check gegen beide Domains.
|
||
|
||
**Manuell:**
|
||
|
||
```bash
|
||
cd app && npm run build
|
||
scp -P 38592 -r dist root@82.165.218.97:/opt/1bis8/web/
|
||
```
|
||
|
||
- TLS, Subdomains und Routing: Nginx Proxy Manager (`npm_default`-Netz)
|
||
- E-Mail: `onebis8-mail` (Postfix-Relay, intern) + `onebis8-mail-api`,
|
||
Kontaktformular sendet an `axel@hocks.eu` (Muster: Mieterportal-Stack)
|
||
- Konfiguration: `server/app.env` (Mail-Token) und `server/mail/mail.env`
|
||
liegen nur auf dem Server, nicht im Repo
|