📚 Renamed 'REQUIREMENTS.md' to 'docs/REQUIREMENTS.md' in backend/app
This commit is contained in:
@@ -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`.
|
@@ -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.
|
Reference in New Issue
Block a user