48 lines
1.7 KiB
Markdown
48 lines
1.7 KiB
Markdown
# 1 bis 8 Party – Mobile Web-App
|
||
|
||
Das ultimative Gesellschaftsspiel über Selbsteinschätzung, Vorurteile und echte
|
||
Offenbarungen – als mobile Web-App umgesetzt: offizielle Spielregeln, 20
|
||
Statement-Karten in 5 Kategorien und ein interaktiver Spielleiter für 3–8
|
||
Spieler mit automatischer Mehrheits-Punkteberechnung.
|
||
|
||
**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/scoring.ts` | Punkteberechnung nach offiziellen Regeln |
|
||
| `server/` | Docker-Stack für den VPS (Web + 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
|