86 lines
2.3 KiB
Markdown

# Kiosk-Modus Fehlerbehebung
## Problem
Der Kiosk-Modus zeigte "unreachable" und brauchte sehr lange zum Laden, obwohl die App im Testlauf mit `python3 app.py --optimized` funktionierte.
## Ursachen
1. **Flask Development Server**: Der eingebaute Flask-Server blockiert bei mehreren gleichzeitigen Anfragen
2. **IPv6-Auflösung**: Browser versuchen zuerst IPv6 (`::1`), was zu 30-90s Timeouts führt
3. **Hängende Prozesse**: Alte Verbindungen im WARTEND-Status blockieren neue Anfragen
## Lösung
Die Fixes wurden direkt in `app.py` integriert:
### 1. Production WSGI Server (Waitress)
- Automatisch aktiv bei `python app.py` oder `python app.py --optimized`
- Multi-Threading für bessere Performance
- Stabil bei vielen gleichzeitigen Anfragen
### 2. IPv4-Only Binding
- Server läuft auf `127.0.0.1:5000` (nur IPv4)
- Keine IPv6-Timeouts mehr
- Kiosk-Browser sollte `http://127.0.0.1:5000` verwenden
### 3. Automatische Prozess-Bereinigung
- Hängende Prozesse werden beim Start automatisch beendet
- Keine manuellen `taskkill` mehr nötig
## Verwendung
```bash
# Normaler Start (mit allen Fixes)
python app.py
# Kiosk-Modus (mit Optimierungen)
python app.py --optimized
# oder
python app.py --kiosk
# Debug-Modus (Flask Dev Server)
python app.py --debug
# Debug mit Production Server
python app.py --debug --production
```
## Kiosk-Browser Konfiguration
Im Kiosk-Browser sollte folgende URL verwendet werden:
```
http://127.0.0.1:5000
```
**NICHT** `http://localhost:5000` verwenden (IPv6-Problem)!
## Systemd Service
Der Kiosk-Service startet automatisch mit den richtigen Parametern:
```bash
ExecStart=/usr/bin/python3 /path/to/app.py --optimized
```
## Performance-Verbesserungen
Mit den Fixes:
- ✅ Sofortiger Start (keine "unreachable" mehr)
- ✅ Schnelle Ladezeiten (< 1 Sekunde)
- Stabil bei Dauerbetrieb
- Keine Abstürze bei mehreren Anfragen
## Fehlersuche
Falls Probleme auftreten:
1. **Port-Check**: `netstat -ano | findstr :5000`
2. **Prozesse beenden**: `python app.py --kill` (in neuem Script)
3. **Logs prüfen**: `logs/app.log` und `logs/kiosk.log`
## Technische Details
- **Waitress**: Production WSGI Server (6 Threads, 200 Connections)
- **IPv4**: Binding auf 127.0.0.1 statt 0.0.0.0
- **Cleanup**: Automatisches Beenden von WARTEND/ESTABLISHED Prozessen
- **Cache**: 1 Jahr für statische Assets im optimierten Modus