7.7 KiB
MYP im Kiosk-Modus
Diese Anleitung beschreibt, wie MYP (Manage Your Printer) auf einem Raspberry Pi 4 im Kiosk-Modus eingerichtet wird, sodass das System beim Booten automatisch startet.
Voraussetzungen
- Raspberry Pi 4 (oder kompatibel) mit Raspbian/Raspberry Pi OS
- Internetverbindung für die Installation (nach der Installation wird keine Verbindung mehr benötigt)
- Bildschirm, Tastatur und Maus für die Einrichtung
- Mindestens 2GB freier Festplattenplatz
- Mindestens 512MB RAM (empfohlen: 1GB+)
Komponenten des Kiosk-Modus
Die Kiosk-Einrichtung besteht aus mehreren Komponenten:
- MYP HTTPS-Backend-Dienst: Systemd-Service zum Starten der MYP-Anwendung auf Port 5000
- Kiosk-Benutzer: Separater Benutzer für den Browser-Betrieb
- Chromium im Kiosk-Modus: Optimierte Browserinstanz mit erweiterten Kiosk-Features
- Watchdog-Services: Mehrere Überwachungsdienste für Backend und Browser
- Firewall-Service: Automatische Netzwerksicherheit
Automatische Installation (Empfohlen)
Die automatische Installation erfolgt über das konsolidierte Setup-Script im Backend-Verzeichnis:
cd backend
sudo chmod +x setup.sh
sudo ./setup.sh
Das Setup-Script bietet folgende Features:
- Robuste Installation mit Retry-Mechanismen
- Umfangreiches Logging in
backend/logs/
- System-Validierung vor Installation
- Automatische Abhängigkeitsauflösung
- Konfiguration aller Services
- Firewall-Setup
- Automatischer Kiosk-Benutzer
Installation-Logs
Das Setup-Script erstellt detaillierte Logs:
backend/logs/install.log
- Vollständiges Installations-Logbackend/logs/errors.log
- Nur Fehlerbackend/logs/warnings.log
- Nur Warnungenbackend/logs/debug.log
- Debug-Informationenbackend/logs/install-summary.txt
- Zusammenfassung
Systemd-Services (Automatisch installiert)
Das Setup-Script installiert folgende Services:
1. MYP HTTPS-Backend (myp-https.service
)
[Unit]
Description=MYP Druckerverwaltung HTTP Backend (Port 5000)
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=root
WorkingDirectory=/opt/myp
ExecStart=/usr/bin/python3 /opt/myp/app.py --production
Restart=always
Environment=FLASK_ENV=production
Environment=FLASK_PORT=5000
Environment=KIOSK_MODE=true
[Install]
WantedBy=multi-user.target
2. Kiosk-Browser (myp-kiosk.service
)
- Startet Chromium im optimierten Kiosk-Modus
- Wartet automatisch auf Backend-Verfügbarkeit
- Umfangreiche Browser-Optimierungen
- Automatischer Neustart bei Fehlern
3. Watchdog-Services
kiosk-watchdog.service
- Überwacht Browser und Backendkiosk-watchdog-python.service
- Python-basierte Überwachung
4. Firewall-Service (myp-firewall.service
)
- Automatische Netzwerksicherheit
- Port-Management
Manuelle Installation (Nur bei Bedarf)
Falls die automatische Installation nicht verwendet werden kann:
1. Pakete installieren
sudo apt update
sudo apt install -y python3 python3-pip python3-venv chromium-browser \
unclutter xdotool curl git
2. MYP-Backend nach /opt/myp kopieren
sudo mkdir -p /opt/myp
sudo cp -r ./backend/* /opt/myp/
cd /opt/myp
sudo pip3 install -r requirements.txt --break-system-packages
3. Kiosk-Benutzer erstellen
sudo useradd -m -s /bin/bash kiosk
sudo usermod -a -G video,audio kiosk
4. Systemd-Services installieren
sudo cp /opt/myp/systemd/*.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable myp-https.service
sudo systemctl enable myp-kiosk.service
sudo systemctl enable kiosk-watchdog.service
sudo systemctl enable myp-firewall.service
5. Automatischen Desktop-Login einschalten
sudo raspi-config
# 1 System Options → S5 Boot/Auto Login → B4 Desktop Autologin
Ablauf beim Booten
- System-Start: Raspberry Pi fährt bis zum Multi-User-Target hoch
- Backend-Start:
myp-https.service
startet das Flask-Backend auf Port 5000 - Firewall-Start:
myp-firewall.service
konfiguriert Netzwerksicherheit - Desktop-Login: LightDM startet und meldet den Benutzer automatisch an
- Kiosk-Start:
myp-kiosk.service
wartet auf Backend und startet Chromium - Watchdog-Aktivierung: Überwachungsservices starten kontinuierliche Überwachung
Browser-Optimierungen
Der Kiosk-Service startet Chromium mit umfangreichen Optimierungen:
Performance-Optimierungen
--disable-gpu-sandbox
--disable-software-rasterizer
--enable-features=VaapiVideoDecoder
--memory-pressure-off
--max_old_space_size=512
Kiosk-spezifische Features
--kiosk
(Vollbild-Modus)--hide-scrollbars
--disable-pinch
--no-first-run
--autoplay-policy=no-user-gesture-required
Sicherheits-Anpassungen
--ignore-certificate-errors
--disable-web-security
(für lokale Anwendung)--no-sandbox
Fehlerbehebung
Service-Status prüfen
# Backend-Status
sudo systemctl status myp-https.service
# Kiosk-Status
sudo systemctl status myp-kiosk.service
# Watchdog-Status
sudo systemctl status kiosk-watchdog.service
# Alle MYP-Services
sudo systemctl status myp-*
Logs einsehen
# Backend-Logs
sudo journalctl -u myp-https.service -f
# Kiosk-Logs
sudo journalctl -u myp-kiosk.service -f
# System-Logs
tail -f /var/log/myp-kiosk.log
# Installation-Logs (falls verfügbar)
cat backend/logs/install-summary.txt
Häufige Probleme
Backend startet nicht:
- Prüfen:
sudo systemctl status myp-https.service
- Log:
sudo journalctl -u myp-https.service
- Port-Konflikt:
sudo netstat -tulpn | grep :5000
Browser startet nicht:
- X11-Display prüfen:
DISPLAY=:0 xset q
- Kiosk-Benutzer prüfen:
id kiosk
- Browser installiert:
which chromium-browser
Watchdog meldet Probleme:
- Watchdog-Log:
sudo journalctl -u kiosk-watchdog.service
- System-Ressourcen:
free -m && df -h
Konfiguration anpassen
Backend-Port ändern
Bearbeiten Sie /etc/systemd/system/myp-https.service
:
Environment=FLASK_PORT=8080
Browser-Startseite ändern
Bearbeiten Sie /etc/systemd/system/myp-kiosk.service
und ändern Sie:
TARGET_URL="http://localhost:5000"
Watchdog-Intervall anpassen
Die Watchdog-Services können über ihre Konfigurationsdateien angepasst werden.
Sicherheitshinweise
- Das System läuft mit root-Berechtigung für das Backend (für Druckerzugriff erforderlich)
- Der Browser läuft als separater
kiosk
-Benutzer - Firewall ist automatisch konfiguriert
- Nur Port 5000 ist für lokale Verbindungen geöffnet
- HTTPS-Zertifikate werden automatisch generiert
Performance-Optimierung
Für optimale Performance auf Raspberry Pi:
-
GPU-Memory erhöhen:
echo "gpu_mem=128" | sudo tee -a /boot/config.txt
-
Swap verringern:
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
-
I/O-Scheduler optimieren:
echo "deadline" | sudo tee /sys/block/mmcblk0/queue/scheduler
Updates
Updates der MYP-Anwendung:
cd /opt/myp
sudo git pull # falls Git-Repository
sudo systemctl restart myp-https.service
sudo systemctl restart myp-kiosk.service
Deinstallation
Vollständige Entfernung:
sudo systemctl disable --now myp-https.service myp-kiosk.service
sudo systemctl disable --now kiosk-watchdog.service myp-firewall.service
sudo rm /etc/systemd/system/myp-*.service
sudo rm /etc/systemd/system/kiosk-*.service
sudo systemctl daemon-reload
sudo userdel -r kiosk
sudo rm -rf /opt/myp
Support
Bei Problemen:
- Prüfen Sie die Logs in
backend/logs/
- Verwenden Sie
sudo journalctl -u service-name
für Service-Logs - Stellen Sie sicher, dass alle Voraussetzungen erfüllt sind
- Führen Sie das Setup-Script erneut aus bei Installations-Problemen