feat: Aktualisierung der Datenbankdateien und Verbesserung der Datumsformatierung in den Templates für eine konsistentere Benutzeroberfläche
This commit is contained in:
216
backend/install/install-kiosk.sh
Normal file
216
backend/install/install-kiosk.sh
Normal file
@@ -0,0 +1,216 @@
|
||||
#!/bin/bash
|
||||
|
||||
# MYP Kiosk Installation Script
|
||||
# Installiert und konfiguriert das komplette Kiosk-System
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# Farben für Output
|
||||
RED='\033[0;31m'
|
||||
GREEN='\033[0;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
BLUE='\033[0;34m'
|
||||
NC='\033[0m' # No Color
|
||||
|
||||
# Logging-Funktionen
|
||||
log_info() {
|
||||
echo -e "${BLUE}[INFO]${NC} $1"
|
||||
}
|
||||
|
||||
log_success() {
|
||||
echo -e "${GREEN}[SUCCESS]${NC} $1"
|
||||
}
|
||||
|
||||
log_warning() {
|
||||
echo -e "${YELLOW}[WARNING]${NC} $1"
|
||||
}
|
||||
|
||||
log_error() {
|
||||
echo -e "${RED}[ERROR]${NC} $1"
|
||||
}
|
||||
|
||||
# Prüfe Root-Rechte
|
||||
if [[ $EUID -ne 0 ]]; then
|
||||
log_error "Dieses Skript muss als root ausgeführt werden"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
log_info "Starte MYP Kiosk Installation..."
|
||||
|
||||
# System-Update
|
||||
log_info "Aktualisiere System-Pakete..."
|
||||
apt update && apt upgrade -y
|
||||
|
||||
# Installiere benötigte Pakete
|
||||
log_info "Installiere benötigte Pakete..."
|
||||
apt install -y \
|
||||
google-chrome-stable \
|
||||
xorg \
|
||||
openbox \
|
||||
lightdm \
|
||||
curl \
|
||||
systemd \
|
||||
python3.11 \
|
||||
python3.11-venv \
|
||||
python3-pip \
|
||||
unclutter \
|
||||
xdotool
|
||||
|
||||
# Erstelle MYP-Benutzer falls nicht vorhanden
|
||||
if ! id "myp" &>/dev/null; then
|
||||
log_info "Erstelle MYP-Benutzer..."
|
||||
useradd -m -s /bin/bash myp
|
||||
usermod -aG audio,video,input myp
|
||||
else
|
||||
log_info "MYP-Benutzer bereits vorhanden"
|
||||
fi
|
||||
|
||||
# Erstelle Verzeichnisstruktur
|
||||
log_info "Erstelle Verzeichnisstruktur..."
|
||||
mkdir -p /opt/myp/{backend,scripts,logs}
|
||||
mkdir -p /home/myp/.config/openbox
|
||||
mkdir -p /home/myp/.config/google-chrome
|
||||
|
||||
# Kopiere Service-Dateien
|
||||
log_info "Installiere Service-Dateien..."
|
||||
cp myp-backend.service /etc/systemd/system/
|
||||
cp myp-kiosk.service /etc/systemd/system/
|
||||
|
||||
# Kopiere und setze Berechtigungen für Skripte
|
||||
log_info "Installiere Kiosk-Skripte..."
|
||||
cp kiosk-start.sh /opt/myp/scripts/
|
||||
chmod +x /opt/myp/scripts/kiosk-start.sh
|
||||
|
||||
# Erstelle Openbox-Konfiguration für automatischen Kiosk-Start
|
||||
log_info "Konfiguriere Openbox für Kiosk-Modus..."
|
||||
cat > /home/myp/.config/openbox/autostart << 'EOF'
|
||||
# MYP Kiosk Autostart
|
||||
# Deaktiviere Bildschirmschoner und Energieverwaltung
|
||||
xset -dpms &
|
||||
xset s off &
|
||||
xset s noblank &
|
||||
|
||||
# Verstecke Mauszeiger bei Inaktivität
|
||||
unclutter -idle 0.1 -root &
|
||||
|
||||
# Verhindere versehentliche Tastenkombinationen
|
||||
xdotool key ctrl+alt+t &
|
||||
|
||||
# Starte Kiosk-Service
|
||||
systemctl --user start myp-kiosk.service &
|
||||
EOF
|
||||
|
||||
# Erstelle LightDM-Konfiguration für automatischen Login
|
||||
log_info "Konfiguriere automatischen Login..."
|
||||
cat > /etc/lightdm/lightdm.conf.d/10-myp-kiosk.conf << 'EOF'
|
||||
[Seat:*]
|
||||
autologin-user=myp
|
||||
autologin-user-timeout=0
|
||||
user-session=openbox
|
||||
autologin-session=openbox
|
||||
greeter-session=unity-greeter
|
||||
allow-guest=false
|
||||
EOF
|
||||
|
||||
# Erstelle Desktop-Session für MYP
|
||||
log_info "Erstelle Desktop-Session..."
|
||||
cat > /usr/share/xsessions/myp-kiosk.desktop << 'EOF'
|
||||
[Desktop Entry]
|
||||
Name=MYP Kiosk
|
||||
Comment=MYP Reservation Platform Kiosk Mode
|
||||
Exec=openbox-session
|
||||
Type=Application
|
||||
DesktopNames=MYP
|
||||
EOF
|
||||
|
||||
# Setze Berechtigungen
|
||||
log_info "Setze Berechtigungen..."
|
||||
chown -R myp:myp /home/myp
|
||||
chown -R myp:myp /opt/myp
|
||||
chmod 755 /opt/myp/scripts/kiosk-start.sh
|
||||
|
||||
# Systemd-Services aktivieren
|
||||
log_info "Aktiviere Systemd-Services..."
|
||||
systemctl daemon-reload
|
||||
systemctl enable myp-backend.service
|
||||
systemctl enable myp-kiosk.service
|
||||
|
||||
# Erstelle Kiosk-Überwachungsskript
|
||||
log_info "Erstelle Überwachungsskript..."
|
||||
cat > /opt/myp/scripts/kiosk-monitor.sh << 'EOF'
|
||||
#!/bin/bash
|
||||
# MYP Kiosk Monitor - Überwacht und startet Kiosk-Prozesse neu
|
||||
|
||||
while true; do
|
||||
# Prüfe ob Chrome läuft
|
||||
if ! pgrep -f "google-chrome.*kiosk" > /dev/null; then
|
||||
echo "$(date): Chrome Kiosk nicht gefunden, starte neu..." >> /opt/myp/logs/kiosk-monitor.log
|
||||
systemctl restart myp-kiosk.service
|
||||
fi
|
||||
|
||||
# Prüfe ob Backend läuft
|
||||
if ! curl -k -s https://localhost:443 > /dev/null 2>&1; then
|
||||
echo "$(date): Backend nicht erreichbar, starte neu..." >> /opt/myp/logs/kiosk-monitor.log
|
||||
systemctl restart myp-backend.service
|
||||
fi
|
||||
|
||||
sleep 30
|
||||
done
|
||||
EOF
|
||||
|
||||
chmod +x /opt/myp/scripts/kiosk-monitor.sh
|
||||
|
||||
# Erstelle Monitor-Service
|
||||
cat > /etc/systemd/system/myp-monitor.service << 'EOF'
|
||||
[Unit]
|
||||
Description=MYP Kiosk Monitor
|
||||
After=myp-backend.service myp-kiosk.service
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=root
|
||||
ExecStart=/opt/myp/scripts/kiosk-monitor.sh
|
||||
Restart=always
|
||||
RestartSec=10
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
|
||||
systemctl enable myp-monitor.service
|
||||
|
||||
# Deaktiviere Desktop-Umgebung und unnötige Services
|
||||
log_info "Deaktiviere unnötige Services..."
|
||||
systemctl disable gdm3 2>/dev/null || true
|
||||
systemctl disable sddm 2>/dev/null || true
|
||||
systemctl disable plymouth 2>/dev/null || true
|
||||
|
||||
# Erstelle Backup-Wiederherstellungsskript
|
||||
log_info "Erstelle Notfall-Wiederherstellungsskript..."
|
||||
cat > /opt/myp/scripts/emergency-restore.sh << 'EOF'
|
||||
#!/bin/bash
|
||||
# Notfall-Wiederherstellung: Deaktiviert Kiosk-Modus und aktiviert normalen Desktop
|
||||
|
||||
echo "Deaktiviere Kiosk-Modus..."
|
||||
systemctl disable myp-kiosk.service
|
||||
systemctl disable myp-backend.service
|
||||
systemctl disable myp-monitor.service
|
||||
|
||||
echo "Aktiviere normalen Desktop..."
|
||||
systemctl enable gdm3 || systemctl enable sddm || systemctl enable lightdm
|
||||
|
||||
echo "Entferne automatischen Login..."
|
||||
rm -f /etc/lightdm/lightdm.conf.d/10-myp-kiosk.conf
|
||||
|
||||
echo "Kiosk-Modus deaktiviert. System neu starten für normalen Desktop."
|
||||
EOF
|
||||
|
||||
chmod +x /opt/myp/scripts/emergency-restore.sh
|
||||
|
||||
log_success "MYP Kiosk Installation abgeschlossen!"
|
||||
log_info "Nächste Schritte:"
|
||||
log_info "1. Backend-Code nach /opt/myp/backend kopieren"
|
||||
log_info "2. Python Virtual Environment einrichten"
|
||||
log_info "3. SSL-Zertifikate konfigurieren"
|
||||
log_info "4. System neu starten: sudo reboot"
|
||||
log_warning "Notfall-Wiederherstellung: /opt/myp/scripts/emergency-restore.sh"
|
Reference in New Issue
Block a user