Projektarbeit-MYP/docs/KIOSK-SETUP.md
2025-06-05 01:34:10 +02:00

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:

  1. MYP HTTPS-Backend-Dienst: Systemd-Service zum Starten der MYP-Anwendung auf Port 5000
  2. Kiosk-Benutzer: Separater Benutzer für den Browser-Betrieb
  3. Chromium im Kiosk-Modus: Optimierte Browserinstanz mit erweiterten Kiosk-Features
  4. Watchdog-Services: Mehrere Überwachungsdienste für Backend und Browser
  5. 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-Log
  • backend/logs/errors.log - Nur Fehler
  • backend/logs/warnings.log - Nur Warnungen
  • backend/logs/debug.log - Debug-Informationen
  • backend/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 Backend
  • kiosk-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

  1. System-Start: Raspberry Pi fährt bis zum Multi-User-Target hoch
  2. Backend-Start: myp-https.service startet das Flask-Backend auf Port 5000
  3. Firewall-Start: myp-firewall.service konfiguriert Netzwerksicherheit
  4. Desktop-Login: LightDM startet und meldet den Benutzer automatisch an
  5. Kiosk-Start: myp-kiosk.service wartet auf Backend und startet Chromium
  6. 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:

  1. GPU-Memory erhöhen:

    echo "gpu_mem=128" | sudo tee -a /boot/config.txt
    
  2. Swap verringern:

    echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
    
  3. 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:

  1. Prüfen Sie die Logs in backend/logs/
  2. Verwenden Sie sudo journalctl -u service-name für Service-Logs
  3. Stellen Sie sicher, dass alle Voraussetzungen erfüllt sind
  4. Führen Sie das Setup-Script erneut aus bei Installations-Problemen