"Update database files and scripts for Raspberry Pi installation"

This commit is contained in:
2025-05-29 16:20:43 +02:00
parent 1ee91cec0a
commit 97538039c1
7 changed files with 294 additions and 354 deletions

View File

@@ -241,7 +241,7 @@ chown "$APP_USER:$APP_USER" "$APP_DIR/.env"
# Erstelle Kiosk-Skript (nach offizieller Anleitung)
log "Erstelle Kiosk-Skript..."
cat > "/home/$KIOSK_USER/kiosk.sh" << EOF
cat > "$KIOSK_HOME/kiosk.sh" << EOF
#!/bin/bash
# Warte auf System-Bereitschaft
@@ -259,8 +259,8 @@ xset -dpms
unclutter -idle 0.5 -root &
# Bereinige Chromium-Präferenzen (verhindert Crash-Warnungen)
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' /home/$KIOSK_USER/.config/chromium/Default/Preferences 2>/dev/null || true
sed -i 's/"exit_type":"Crashed"/"exit_type":"Normal"/' /home/$KIOSK_USER/.config/chromium/Default/Preferences 2>/dev/null || true
sed -i 's/"exited_cleanly":false/"exited_cleanly":true/' $KIOSK_HOME/.config/chromium/Default/Preferences 2>/dev/null || true
sed -i 's/"exit_type":"Crashed"/"exit_type":"Normal"/' $KIOSK_HOME/.config/chromium/Default/Preferences 2>/dev/null || true
# Warte auf Netzwerk und Anwendung
while ! curl -s http://localhost > /dev/null; do
@@ -304,12 +304,12 @@ done
# done
EOF
chmod +x "/home/$KIOSK_USER/kiosk.sh"
chown "$KIOSK_USER:$KIOSK_USER" "/home/$KIOSK_USER/kiosk.sh"
chmod +x "$KIOSK_HOME/kiosk.sh"
chown "$KIOSK_USER:$KIOSK_USER" "$KIOSK_HOME/kiosk.sh"
# Konfiguriere LightDM für automatischen Login (nach offizieller Anleitung)
log "Konfiguriere automatischen Login..."
cat > "/etc/lightdm/lightdm.conf" << EOF
cat > "$LIGHTDM_CONF" << EOF
[Seat:*]
autologin-user=$KIOSK_USER
autologin-user-timeout=0
@@ -319,17 +319,17 @@ EOF
# Erstelle Openbox-Konfiguration für Kiosk-Benutzer
log "Konfiguriere Openbox für Kiosk-Modus..."
mkdir -p "/home/$KIOSK_USER/.config/openbox"
cat > "/home/$KIOSK_USER/.config/openbox/autostart" << EOF
mkdir -p "$KIOSK_HOME/.config/openbox"
cat > "$KIOSK_HOME/.config/openbox/autostart" << EOF
# Starte Kiosk-Anwendung automatisch
/home/$KIOSK_USER/kiosk.sh &
$KIOSK_HOME/kiosk.sh &
EOF
chown -R "$KIOSK_USER:$KIOSK_USER" "/home/$KIOSK_USER/.config"
chown -R "$KIOSK_USER:$KIOSK_USER" "$KIOSK_HOME/.config"
# Erstelle Systemd-Service für die Anwendung
log "Erstelle Systemd-Service für Anwendung..."
cat > "/etc/systemd/system/$SERVICE_NAME.service" << EOF
cat > "$SYSTEMD_DIR/$SERVICE_NAME.service" << EOF
[Unit]
Description=MYP Druckerverwaltung Flask Application
After=network.target
@@ -352,7 +352,7 @@ EOF
# Erstelle Systemd-Service für Kiosk (nach offizieller Anleitung)
log "Erstelle Systemd-Service für Kiosk..."
cat > "/etc/systemd/system/$KIOSK_SERVICE_NAME.service" << EOF
cat > "$SYSTEMD_DIR/$KIOSK_SERVICE_NAME.service" << EOF
[Unit]
Description=MYP Chromium Kiosk
Wants=graphical.target
@@ -360,9 +360,9 @@ After=graphical.target $SERVICE_NAME.service
[Service]
Environment=DISPLAY=:0.0
Environment=XAUTHORITY=/home/$KIOSK_USER/.Xauthority
Environment=XAUTHORITY=$KIOSK_HOME/.Xauthority
Type=simple
ExecStart=/bin/bash /home/$KIOSK_USER/kiosk.sh
ExecStart=/bin/bash $KIOSK_HOME/kiosk.sh
Restart=on-abort
User=$KIOSK_USER
Group=$KIOSK_USER
@@ -373,7 +373,7 @@ EOF
# Nginx-Konfiguration
log "Konfiguriere Nginx..."
cat > "/etc/nginx/sites-available/myp-druckerverwaltung" << EOF
cat > "$NGINX_SITES_AVAILABLE/myp-druckerverwaltung" << EOF
server {
listen 80 default_server;
listen [::]:80 default_server;
@@ -403,12 +403,12 @@ server {
EOF
# Aktiviere Nginx-Site
rm -f /etc/nginx/sites-enabled/default
ln -sf /etc/nginx/sites-available/myp-druckerverwaltung /etc/nginx/sites-enabled/
rm -f $NGINX_SITES_ENABLED/default
ln -sf $NGINX_SITES_AVAILABLE/myp-druckerverwaltung $NGINX_SITES_ENABLED/
# Erstelle Wartungsskript
log "Erstelle Wartungsskript..."
cat > "/usr/local/bin/myp-maintenance" << 'EOF'
cat > "$LOCAL_BIN/myp-maintenance" << 'EOF'
#!/bin/bash
# MYP Druckerverwaltung Wartungsskript
@@ -452,7 +452,7 @@ case "$1" in
;;
update)
echo "Aktualisiere MYP Druckerverwaltung..."
cd /opt/myp-druckerverwaltung
cd $APP_DIR
sudo -u myp git pull || echo "Git pull nicht möglich - lokale Installation"
# Aktualisiere Python-Dependencies
@@ -481,50 +481,50 @@ case "$1" in
esac
EOF
chmod +x /usr/local/bin/myp-maintenance
chmod +x $LOCAL_BIN/myp-maintenance
# Erstelle Backup-Skript
log "Erstelle Backup-Skript..."
cat > "/usr/local/bin/myp-backup" << 'EOF'
cat > "$LOCAL_BIN/myp-backup" << EOF
#!/bin/bash
BACKUP_DIR="/opt/myp-backups"
DATE=$(date +%Y%m%d_%H%M%S)
APP_DIR="/opt/myp-druckerverwaltung"
BACKUP_DIR="$BACKUP_DIR"
DATE=\$(date +%Y%m%d_%H%M%S)
APP_DIR="$APP_DIR"
mkdir -p "$BACKUP_DIR"
mkdir -p "\$BACKUP_DIR"
echo "Erstelle Backup: $DATE"
echo "Erstelle Backup: \$DATE"
# Stoppe Anwendung
systemctl stop myp-druckerverwaltung
# Erstelle Backup
tar -czf "$BACKUP_DIR/myp_backup_$DATE.tar.gz" \
-C "$APP_DIR" \
--exclude='node_modules' \
--exclude='__pycache__' \
--exclude='venv' \
database.db \
.env \
uploads/ \
logs/ \
config/ \
tar -czf "\$BACKUP_DIR/myp_backup_\$DATE.tar.gz" \\
-C "\$APP_DIR" \\
--exclude='node_modules' \\
--exclude='__pycache__' \\
--exclude='venv' \\
database.db \\
.env \\
uploads/ \\
logs/ \\
config/ \\
2>/dev/null || true
# Starte Anwendung
systemctl start myp-druckerverwaltung
echo "Backup erstellt: $BACKUP_DIR/myp_backup_$DATE.tar.gz"
echo "Backup erstellt: \$BACKUP_DIR/myp_backup_\$DATE.tar.gz"
# Lösche alte Backups (älter als 30 Tage)
find "$BACKUP_DIR" -name "myp_backup_*.tar.gz" -mtime +30 -delete
find "\$BACKUP_DIR" -name "myp_backup_*.tar.gz" -mtime +30 -delete
EOF
chmod +x /usr/local/bin/myp-backup
chmod +x $LOCAL_BIN/myp-backup
# Erstelle Cron-Job für automatische Backups
echo "0 2 * * * root /usr/local/bin/myp-backup" > /etc/cron.d/myp-backup
echo "0 2 * * * root $LOCAL_BIN/myp-backup" > $CRON_DIR/myp-backup
# Aktiviere und starte Services
log "Aktiviere und starte Services..."
@@ -583,9 +583,9 @@ info " • Update: myp-maintenance update"
info " • Backup erstellen: myp-backup"
echo
info "🔍 Zusätzliche Konfiguration:"
info " • Kiosk-Skript: /home/$KIOSK_USER/kiosk.sh"
info " • LightDM-Konfiguration: /etc/lightdm/lightdm.conf"
info " • Openbox-Autostart: /home/$KIOSK_USER/.config/openbox/autostart"
info " • Kiosk-Skript: $KIOSK_HOME/kiosk.sh"
info " • LightDM-Konfiguration: $LIGHTDM_CONF"
info " • Openbox-Autostart: $KIOSK_HOME/.config/openbox/autostart"
info " • Anwendungslogs: journalctl -u myp-druckerverwaltung -f"
info " • Kiosk-Logs: journalctl -u myp-kiosk -f"
echo