Remove deprecated backend files and documentation, including Docker configurations, environment variables, and various scripts, to streamline the project structure and eliminate unused components.
This commit is contained in:
11
backend/install/kiosk.service
Normal file
11
backend/install/kiosk.service
Normal file
@@ -0,0 +1,11 @@
|
||||
[Unit]
|
||||
Description=Chromium Kiosk
|
||||
PartOf=graphical-session.target
|
||||
|
||||
[Service]
|
||||
Type=forking
|
||||
ExecStart=/home/pi/kiosk.sh
|
||||
Restart=on-abort
|
||||
|
||||
[Install]
|
||||
WantedBy=xsession.target
|
19
backend/install/kiosk.sh
Executable file
19
backend/install/kiosk.sh
Executable file
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# Bildschirm-Blanking verhindern
|
||||
xset s off
|
||||
xset s noblank
|
||||
xset -dpms
|
||||
|
||||
# Mauszeiger ausblenden
|
||||
unclutter -idle 0.5 -root &
|
||||
|
||||
# Chromium-Crash-Dialoge unterdrücken
|
||||
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' \
|
||||
"$HOME/.config/chromium/Default/Preferences" 2>/dev/null || true
|
||||
sed -i 's/"exit_type":"Crashed"/"exit_type":"Normal"/' \
|
||||
"$HOME/.config/chromium/Default/Preferences" 2>/dev/null || true
|
||||
|
||||
# Browser starten
|
||||
chromium-browser --kiosk --noerrdialogs --disable-infobars \
|
||||
--window-position=0,0 --app=http://localhost:5000/ &
|
14
backend/install/myp.service
Normal file
14
backend/install/myp.service
Normal file
@@ -0,0 +1,14 @@
|
||||
[Unit]
|
||||
Description=MYP Flask Backend
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
|
||||
[Service]
|
||||
User=pi
|
||||
WorkingDirectory=/opt/myp
|
||||
ExecStart=/opt/myp/.venv/bin/python /opt/myp/app.py
|
||||
Restart=always
|
||||
Environment=PYTHONUNBUFFERED=1
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
6
backend/install/requirements.txt
Normal file
6
backend/install/requirements.txt
Normal file
@@ -0,0 +1,6 @@
|
||||
flask==2.3.3
|
||||
flask-login==0.6.2
|
||||
sqlalchemy==2.0.20
|
||||
PyP100==0.1.1
|
||||
bcrypt==4.0.1
|
||||
gunicorn==21.2.0
|
90
backend/install/setup.sh
Executable file
90
backend/install/setup.sh
Executable file
@@ -0,0 +1,90 @@
|
||||
#!/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'"
|
40
backend/install/watchdog.sh
Executable file
40
backend/install/watchdog.sh
Executable file
@@ -0,0 +1,40 @@
|
||||
#!/usr/bin/env bash
|
||||
# MYP Watchdog für Chromium Browser
|
||||
# Empfohlene Ausführung über crontab: */5 * * * * /home/pi/watchdog.sh > /dev/null 2>&1
|
||||
|
||||
# Funktion zum Loggen von Nachrichten
|
||||
log() {
|
||||
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" >> /home/pi/myp-watchdog.log
|
||||
}
|
||||
|
||||
# Prüfen, ob Chromium läuft
|
||||
if ! pgrep -x "chromium-browse" > /dev/null; then
|
||||
log "Chromium nicht gefunden - starte neu"
|
||||
|
||||
# Alle eventuell noch vorhandenen Chromium-Prozesse beenden
|
||||
pkill -f chromium || true
|
||||
|
||||
# Warten bis alle Prozesse beendet sind
|
||||
sleep 2
|
||||
|
||||
# Kiosk-Script neu starten
|
||||
/home/pi/kiosk.sh
|
||||
|
||||
log "Chromium neugestartet"
|
||||
else
|
||||
# Optional: Nur für Debug-Zwecke
|
||||
# log "Chromium läuft normal"
|
||||
:
|
||||
fi
|
||||
|
||||
# Prüfen, ob MYP Flask-Dienst läuft
|
||||
if ! systemctl is-active --quiet myp.service; then
|
||||
log "MYP Flask-Dienst ist nicht aktiv - starte neu"
|
||||
|
||||
# Dienst neustarten
|
||||
sudo systemctl restart myp.service
|
||||
|
||||
log "MYP Flask-Dienst neugestartet"
|
||||
fi
|
||||
|
||||
exit 0
|
Reference in New Issue
Block a user