From dfbab0488c8fa174c65af3be62f8cf6b2abbd1f4 Mon Sep 17 00:00:00 2001 From: Till Tomczak Date: Sat, 31 May 2025 21:23:53 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=9A=20Renamed=20'REQUIREMENTS.md'=20to?= =?UTF-8?q?=20'docs/REQUIREMENTS.md'=20in=20backend/app?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/app/README.md | 200 +++++++++++++- backend/app/docs/KIOSK_SETUP_ANLEITUNG.md | 323 +++++++++++++++++++++- backend/app/{ => docs}/REQUIREMENTS.md | 0 3 files changed, 521 insertions(+), 2 deletions(-) rename backend/app/{ => docs}/REQUIREMENTS.md (100%) diff --git a/backend/app/README.md b/backend/app/README.md index 0519ecba6..db8f7eac3 100644 --- a/backend/app/README.md +++ b/backend/app/README.md @@ -1 +1,199 @@ - \ No newline at end of file +# 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`. \ No newline at end of file diff --git a/backend/app/docs/KIOSK_SETUP_ANLEITUNG.md b/backend/app/docs/KIOSK_SETUP_ANLEITUNG.md index 0519ecba6..beaa84fef 100644 --- a/backend/app/docs/KIOSK_SETUP_ANLEITUNG.md +++ b/backend/app/docs/KIOSK_SETUP_ANLEITUNG.md @@ -1 +1,322 @@ - \ No newline at end of file +# 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. \ No newline at end of file diff --git a/backend/app/REQUIREMENTS.md b/backend/app/docs/REQUIREMENTS.md similarity index 100% rename from backend/app/REQUIREMENTS.md rename to backend/app/docs/REQUIREMENTS.md