86 lines
2.3 KiB
Markdown
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 |