#!/usr/bin/env bash # MYP Kiosk-Modus Einrichtungsskript # Fehlerabbruch aktivieren set -e echo "===== MYP Kiosk-Modus Einrichtungsskript =====" echo "Dieses Skript richtet MYP für den automatischen Start im Kiosk-Modus ein." echo "" # 1. Benötigte Pakete installieren echo "1. Installiere benötigte Pakete..." sudo apt update sudo apt install -y python3 python3-pip python3-venv chromium-browser \ unclutter xdotool xscreensaver git # 2. Verzeichnis für MYP erstellen und Projekt kopieren echo "2. Kopiere MYP nach /opt/myp..." sudo mkdir -p /opt/myp sudo chown $USER:$USER /opt/myp # Aktuelle Verzeichnisstruktur ermitteln SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" echo "Kopiere Dateien von $SCRIPT_DIR nach /opt/myp..." cp -r "$SCRIPT_DIR"/* /opt/myp/ # 3. Python-Umgebung und Abhängigkeiten einrichten echo "3. Richte Python-Umgebung ein..." cd /opt/myp python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt # 4. Systemd-Dienst für Flask-Backend einrichten echo "4. Richte Flask-Backend-Dienst ein..." sudo cp /opt/myp/myp.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable myp.service sudo systemctl start myp.service # 5. Kiosk-Script einrichten echo "5. Richte Kiosk-Script ein..." cp /opt/myp/kiosk.sh /home/pi/ chmod +x /home/pi/kiosk.sh # 6. Systemd-User-Dienst für Kiosk einrichten echo "6. Richte Kiosk-Dienst ein..." mkdir -p /home/pi/.config/systemd/user cp /opt/myp/kiosk.service /home/pi/.config/systemd/user/ systemctl --user daemon-reload systemctl --user enable kiosk.service # 7. Linger für den pi-Benutzer aktivieren echo "7. Aktiviere User-Linger für pi-Benutzer..." sudo loginctl enable-linger pi # 8. Watchdog-Script einrichten echo "8. Richte Watchdog-Script ein..." cp /opt/myp/watchdog.sh /home/pi/ chmod +x /home/pi/watchdog.sh # 9. Cron-Job für Watchdog einrichten echo "9. Richte Cron-Job für Watchdog ein..." (crontab -l 2>/dev/null || echo "") | grep -v "watchdog.sh" | { cat; echo "*/5 * * * * /home/pi/watchdog.sh > /dev/null 2>&1"; } | crontab - # 10. Automatischen Login einrichten echo "10. Automatischer Login wird manuell über raspi-config eingerichtet" echo " Führe 'sudo raspi-config' aus und wähle:" echo " 1 System Options → S5 Boot/Auto Login → B4 Desktop Autologin" # 11. Bildschirm nie ausschalten echo "11. Deaktiviere Bildschirmschoner..." sudo sed -i 's/#BLANK_TIME=.*/BLANK_TIME=0/' /etc/xdg/lxsession/LXDE-pi/autostart echo "" echo "===== Installation abgeschlossen =====" echo "Um die Einrichtung zu vervollständigen, führe 'sudo raspi-config' aus" echo "und aktiviere den automatischen Login: " echo "1 System Options → S5 Boot/Auto Login → B4 Desktop Autologin" echo "" echo "Nach einem Neustart sollte der Raspberry Pi automatisch:" echo "1. Die MYP-Flask-Anwendung starten" echo "2. Den Chromium-Browser im Kiosk-Modus öffnen" echo "" echo "MYP ist erreichbar unter: http://localhost:5000/" echo "" echo "Ein Watchdog-Script überwacht alle 5 Minuten, ob Chromium und der MYP-Dienst" echo "noch laufen und startet sie bei Bedarf neu." echo "" echo "Starte den Raspberry Pi neu mit 'sudo reboot'"