📚 Renamed 'REQUIREMENTS.md' to 'docs/REQUIREMENTS.md' in backend/app

This commit is contained in:
2025-05-31 21:23:53 +02:00
parent eadb7eedc4
commit dfbab0488c
3 changed files with 521 additions and 2 deletions

View File

@@ -1 +1,199 @@
# MYP Druckerverwaltung - Raspberry Pi Kiosk-System
## 🎯 Überblick
Vollautomatisches Kiosk-System für Raspberry Pi, das beim Booten ohne Benutzeranmeldung startet und die MYP Druckerverwaltung im Vollbildmodus anzeigt.
## 🚀 Schnellstart
### 1. Automatische Installation
```bash
# Als Root ausführen
sudo bash combined.sh
```
### 2. System neustarten
```bash
sudo reboot
```
**Das war's!** Nach dem Neustart startet das System automatisch im Kiosk-Modus.
## ✨ Features
- **🔄 Automatischer Start** - Keine Benutzeranmeldung erforderlich
- **🖥️ Kiosk-Modus** - Chromium im Vollbildmodus ohne UI-Elemente
- **🖱️ Mauszeiger versteckt** - Automatisch nach 0.5s Inaktivität
- **🔒 Escape-sicher** - Keine Tastenkombinationen verfügbar
- **📱 Multi-Port Support** - Versucht Port 8080, dann 5000
- **🔧 Selbstheilend** - Automatischer Neustart bei Problemen
- **🍓 Raspberry Pi optimiert** - Hardware-spezifische Optimierungen
## 📋 Was wird installiert?
### System-Komponenten
- **Chromium Browser** - Für Kiosk-Anzeige
- **Openbox** - Minimaler Window Manager
- **LightDM** - Display Manager für Autologin
- **Python 3 + Flask** - Backend-Anwendung
- **Systemd Services** - Automatischer Start
### Benutzer
- **kiosk** - Für automatischen Login und Browser
- **myp** - Für Backend-Anwendung
### Services
- **myp-druckerverwaltung.service** - Flask-Backend
- **kiosk-chromium.service** - Browser im Kiosk-Modus
- **lightdm.service** - Automatischer Login
## 🔧 Wartung
### Status prüfen
```bash
sudo myp-maintenance status
```
### Services neustarten
```bash
sudo myp-maintenance restart
```
### Live-Logs anzeigen
```bash
sudo myp-maintenance logs
```
### Installation testen
```bash
bash test-kiosk-setup.sh
```
## 📊 Systemanforderungen
- **Raspberry Pi 3B+** oder neuer (empfohlen)
- **Raspberry Pi OS** (Lite oder Desktop)
- **2GB freier Speicherplatz**
- **Internetverbindung** (für Installation)
## 🛠️ Problembehandlung
### Kiosk startet nicht
```bash
# Backend prüfen
systemctl status myp-druckerverwaltung
curl http://localhost:5000
# Display Manager prüfen
systemctl status lightdm
# Logs anzeigen
tail -f /var/log/kiosk-session.log
```
### Browser-Probleme
```bash
# Chromium-Prozesse beenden
sudo pkill -f chromium
# Cache löschen
sudo rm -rf /home/kiosk/.chromium-kiosk
# Service neustarten
sudo systemctl restart kiosk-chromium
```
## 📁 Projektstruktur
```
.
├── combined.sh # Hauptinstallationsskript
├── test-kiosk-setup.sh # Validierungstest
├── kiosk-watchdog.service # Überwachungsservice
├── docs/
│ └── KIOSK_SETUP_ANLEITUNG.md # Detaillierte Anleitung
├── app.py # Flask-Anwendung
├── models.py # Datenbank-Modelle
├── requirements.txt # Python-Dependencies
└── README.md # Diese Datei
```
## 🔒 Sicherheit
- **Kiosk-Escape verhindert** - Alle Tastenkombinationen deaktiviert
- **SSH standardmäßig deaktiviert** - Für Sicherheit
- **Root-Passwort gesetzt** - `744563017196A` für Wartung
- **Firewall installiert** - UFW verfügbar aber nicht konfiguriert
### Wartungszugang aktivieren
```bash
# SSH für Remote-Wartung aktivieren
sudo systemctl enable ssh
sudo systemctl start ssh
# SSH wieder deaktivieren
sudo systemctl stop ssh
sudo systemctl disable ssh
```
## 🍓 Raspberry Pi Optimierungen
### Boot-Konfiguration
- **GPU Memory Split** - 128MB für bessere Browser-Performance
- **Boot-Splash deaktiviert** - Schnellerer Start
- **Console Blanking deaktiviert** - Bildschirm bleibt an
- **HDMI Force Hotplug** - Bessere Display-Kompatibilität
### Performance-Optimierungen
- **WLAN Power Management deaktiviert**
- **IPv6 systemweit deaktiviert**
- **Swappiness reduziert**
- **Energiesparmodus deaktiviert**
## 📖 Dokumentation
- **[Detaillierte Setup-Anleitung](docs/KIOSK_SETUP_ANLEITUNG.md)** - Vollständige Dokumentation
- **[Systemd Services](kiosk-watchdog.service)** - Service-Konfiguration
- **[Test-Skript](test-kiosk-setup.sh)** - Validierung der Installation
## 🔄 Updates
### Anwendung aktualisieren
```bash
# Neue Version nach /opt/myp-druckerverwaltung kopieren
sudo systemctl restart myp-druckerverwaltung
```
### System aktualisieren
```bash
sudo apt update && sudo apt upgrade -y
sudo reboot
```
## 🆘 Support
### Log-Sammlung
```bash
# Alle relevanten Logs sammeln
sudo journalctl -u myp-druckerverwaltung > myp-logs.txt
sudo journalctl -u lightdm >> myp-logs.txt
cat /var/log/kiosk-session.log >> myp-logs.txt
```
### Häufige Probleme
1. **"Anwendung nicht erreichbar"** → Backend-Service prüfen
2. **"Schwarzer Bildschirm"** → X-Server und LightDM prüfen
3. **"Browser startet nicht"** → Chromium-Installation prüfen
4. **"Kein automatischer Login"** → LightDM-Konfiguration prüfen
## 📜 Lizenz
Dieses Projekt ist für interne Nutzung bestimmt. Alle Rechte vorbehalten.
---
**🎉 Viel Erfolg mit Ihrem MYP Kiosk-System!**
Bei Fragen oder Problemen prüfen Sie zuerst die Log-Dateien und verwenden Sie das Wartungstool `myp-maintenance`.

View File

@@ -1 +1,322 @@
# MYP Druckerverwaltung - Kiosk-Modus Setup Anleitung
## Übersicht
Diese Anleitung beschreibt die vollautomatische Einrichtung eines Kiosk-Modus auf Raspberry Pi für die MYP Druckerverwaltung. Das System startet automatisch beim Booten ohne Benutzeranmeldung und öffnet Chromium im Vollbildmodus.
## Voraussetzungen
- Raspberry Pi (3B+ oder neuer empfohlen)
- Raspberry Pi OS (Lite oder Desktop)
- Internetverbindung
- Mindestens 2GB freier Speicherplatz
## Automatische Installation
### 1. Skript ausführen
```bash
# Als Root ausführen
sudo bash combined.sh
```
### 2. System neustarten
```bash
sudo reboot
```
## Was wird installiert?
### System-Komponenten
- **Chromium Browser** - Für Kiosk-Anzeige
- **Openbox** - Minimaler Window Manager
- **LightDM** - Display Manager für Autologin
- **Python 3** - Für Flask-Anwendung
- **Systemd Services** - Für automatischen Start
### Benutzer
- **kiosk** - Kiosk-Benutzer für automatischen Login
- **myp** - Anwendungsbenutzer für Backend
### Services
- **myp-druckerverwaltung.service** - Flask-Backend
- **kiosk-chromium.service** - Chromium Kiosk-Modus
- **lightdm.service** - Automatischer Login
## Kiosk-Funktionalität
### Automatischer Start
1. System bootet ohne Benutzeranmeldung
2. LightDM meldet automatisch Kiosk-Benutzer an
3. Openbox startet als minimaler Window Manager
4. Flask-Backend startet auf Port 5000
5. Chromium öffnet automatisch im Kiosk-Modus
### URL-Priorität
Das System versucht folgende URLs in dieser Reihenfolge:
1. `http://localhost:8080` (falls verfügbar)
2. `http://localhost:5000` (Fallback)
### Kiosk-Features
- **Vollbildmodus** - Keine Browser-UI sichtbar
- **Mauszeiger versteckt** - Nach 0.5s Inaktivität
- **Keine Tastenkombinationen** - Alt+Tab, F11 etc. deaktiviert
- **Automatischer Neustart** - Bei Browser-Crash
- **Energiesparmodus deaktiviert** - Bildschirm bleibt immer an
## Raspberry Pi Optimierungen
### Boot-Konfiguration (`/boot/config.txt`)
```ini
# GPU Memory für bessere Browser-Performance
gpu_mem=128
# Boot-Optimierungen
disable_splash=1
hdmi_force_hotplug=1
disable_overscan=1
```
### Kernel-Parameter (`/boot/cmdline.txt`)
```
consoleblank=0 # Console Blanking deaktiviert
```
### Hardware-Optimierungen
- WLAN Power Management deaktiviert
- IPv6 systemweit deaktiviert
- Swappiness reduziert
- GPU Memory Split optimiert
## Wartung und Überwachung
### Wartungstool verwenden
```bash
# System-Status prüfen
sudo myp-maintenance status
# Services neustarten
sudo myp-maintenance restart
# Live-Logs anzeigen
sudo myp-maintenance logs
# Services stoppen
sudo myp-maintenance stop
# Services starten
sudo myp-maintenance start
```
### Log-Dateien
```bash
# Kiosk-Session Logs
tail -f /var/log/kiosk-session.log
# Systemd Service Logs
journalctl -u myp-druckerverwaltung -f
journalctl -u lightdm -f
# System-Logs
journalctl -f
```
### Service-Status prüfen
```bash
# Alle Services prüfen
systemctl status myp-druckerverwaltung
systemctl status lightdm
systemctl status kiosk-chromium
# Service-Abhängigkeiten anzeigen
systemctl list-dependencies graphical.target
```
## Problembehandlung
### Kiosk startet nicht
1. **Backend prüfen:**
```bash
systemctl status myp-druckerverwaltung
curl http://localhost:5000
```
2. **Display Manager prüfen:**
```bash
systemctl status lightdm
```
3. **X-Server prüfen:**
```bash
ps aux | grep X
echo $DISPLAY
```
### Browser-Probleme
1. **Chromium-Prozesse beenden:**
```bash
sudo pkill -f chromium
```
2. **Chromium-Cache löschen:**
```bash
sudo rm -rf /home/kiosk/.chromium-kiosk
```
3. **Kiosk-Service neustarten:**
```bash
sudo systemctl restart kiosk-chromium
```
### Netzwerk-Probleme
1. **Verbindung testen:**
```bash
ping google.com
curl http://localhost:5000
```
2. **WLAN Power Management prüfen:**
```bash
iwconfig wlan0
```
### Performance-Probleme
1. **Temperatur prüfen (Raspberry Pi):**
```bash
vcgencmd measure_temp
```
2. **Memory-Usage prüfen:**
```bash
free -h
htop
```
3. **GPU Memory prüfen:**
```bash
vcgencmd get_mem gpu
```
## Sicherheit
### Kiosk-Escape verhindern
- Alle Tastenkombinationen deaktiviert
- Kein Zugriff auf Terminal
- Openbox ohne Menü konfiguriert
- Browser-Entwicklertools deaktiviert
### Remote-Zugriff
- SSH standardmäßig deaktiviert
- Root-Login nur mit Passwort: `744563017196A`
- Firewall (UFW) installiert aber nicht konfiguriert
### Wartungszugang
```bash
# SSH aktivieren für Wartung
sudo systemctl enable ssh
sudo systemctl start ssh
# SSH wieder deaktivieren
sudo systemctl stop ssh
sudo systemctl disable ssh
```
## Anpassungen
### Eigene Anwendung einsetzen
1. **Anwendung nach `/opt/myp-druckerverwaltung` kopieren**
2. **Service-Datei anpassen falls nötig:**
```bash
sudo nano /etc/systemd/system/myp-druckerverwaltung.service
```
3. **Services neustarten:**
```bash
sudo systemctl daemon-reload
sudo systemctl restart myp-druckerverwaltung
```
### URL ändern
1. **Kiosk-Skript bearbeiten:**
```bash
sudo nano /home/kiosk/start-kiosk.sh
```
2. **URL in der Datei anpassen**
3. **Kiosk-Service neustarten:**
```bash
sudo systemctl restart kiosk-chromium
```
### Chromium-Flags anpassen
Bearbeiten Sie `/home/kiosk/start-kiosk.sh` und passen Sie die `CHROMIUM_FLAGS` Variable an.
## Backup und Wiederherstellung
### Konfiguration sichern
```bash
# Wichtige Konfigurationsdateien
sudo tar -czf myp-kiosk-backup.tar.gz \
/etc/systemd/system/myp-*.service \
/etc/systemd/system/kiosk-*.service \
/etc/lightdm/lightdm.conf \
/home/kiosk/.config \
/home/kiosk/start-kiosk.sh \
/opt/myp-druckerverwaltung
```
### System zurücksetzen
```bash
# Services stoppen und deaktivieren
sudo systemctl stop lightdm myp-druckerverwaltung kiosk-chromium
sudo systemctl disable lightdm myp-druckerverwaltung kiosk-chromium
# Benutzer entfernen
sudo userdel -r kiosk
sudo userdel -r myp
# Service-Dateien entfernen
sudo rm /etc/systemd/system/myp-*.service
sudo rm /etc/systemd/system/kiosk-*.service
# Systemd neu laden
sudo systemctl daemon-reload
```
## Support
### Log-Sammlung für Support
```bash
# Alle relevanten Logs sammeln
sudo journalctl -u myp-druckerverwaltung > myp-logs.txt
sudo journalctl -u lightdm >> myp-logs.txt
cat /var/log/kiosk-session.log >> myp-logs.txt
systemctl status myp-druckerverwaltung >> myp-logs.txt
```
### Häufige Probleme
1. **"Anwendung nicht erreichbar"** - Backend-Service prüfen
2. **"Schwarzer Bildschirm"** - X-Server und LightDM prüfen
3. **"Browser startet nicht"** - Chromium-Installation prüfen
4. **"Kein automatischer Login"** - LightDM-Konfiguration prüfen
## Erweiterte Konfiguration
### Mehrere Displays
Für Multi-Monitor-Setups bearbeiten Sie die Openbox-Konfiguration in `/home/kiosk/.config/openbox/rc.xml`.
### Touch-Screen Support
Das System unterstützt automatisch Touch-Screens. Für spezielle Kalibrierung installieren Sie `xinput-calibrator`.
### Audio-Ausgabe
Audio wird automatisch über HDMI ausgegeben. Für analoge Ausgabe:
```bash
sudo raspi-config
# Advanced Options > Audio > Force 3.5mm
```
---
**Hinweis:** Diese Anleitung basiert auf bewährten Kiosk-Implementierungen und ist speziell für Raspberry Pi optimiert. Bei Problemen prüfen Sie zuerst die Log-Dateien und Service-Status.