From db593d0b824c844dec172436b264ac8aeae4eac7 Mon Sep 17 00:00:00 2001 From: Till Tomczak Date: Tue, 3 Jun 2025 22:26:24 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=89=20Improved=20IHK=20Project=20Docum?= =?UTF-8?q?entation=20and=20Logs=20for=20smoother=20installation=20process?= =?UTF-8?q?=20=F0=9F=8E=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/logs/myp-install-debug.log | 28 ++++----- backend/logs/myp-install-errors.log | 2 +- backend/logs/myp-install-warnings.log | 2 +- backend/logs/myp-install.log | 67 ++++++++++------------ backend/setup.sh | 82 +++++++++++++++++++++++---- 5 files changed, 118 insertions(+), 63 deletions(-) diff --git a/backend/logs/myp-install-debug.log b/backend/logs/myp-install-debug.log index 6eaee88b..3211622d 100644 --- a/backend/logs/myp-install-debug.log +++ b/backend/logs/myp-install-debug.log @@ -1,56 +1,56 @@ ================================================================= -MYP Installation DEBUG Log - 2025-06-03 22:16:33 +MYP Installation DEBUG Log - 2025-06-03 22:24:29 ================================================================= -[2025-06-03 22:16:33] DEBUG von setup.sh:451 +[2025-06-03 22:24:29] DEBUG von setup.sh:465 Debian erkannt über /etc/debian_version: 12.11 --- -[2025-06-03 22:16:33] DEBUG von setup.sh:519 +[2025-06-03 22:24:29] DEBUG von setup.sh:533 Kein Raspberry Pi erkannt. Hardware-Info: --- -[2025-06-03 22:16:33] DEBUG von setup.sh:520 +[2025-06-03 22:24:29] DEBUG von setup.sh:534 - Device Tree: nicht verfügbar --- -[2025-06-03 22:16:33] DEBUG von setup.sh:521 +[2025-06-03 22:24:29] DEBUG von setup.sh:535 - CPU Hardware: nicht verfügbar --- -[2025-06-03 22:16:33] DEBUG von setup.sh:561 +[2025-06-03 22:24:29] DEBUG von setup.sh:575 Vollständige Kernel-Info: Linux raspberrypi 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 GNU/Linux --- -[2025-06-03 22:16:33] DEBUG von setup.sh:617 +[2025-06-03 22:24:29] DEBUG von setup.sh:631 DNS-Test Details: Teste DNS für 8.8.8.8: Erfolg mit nslookup. --- -[2025-06-03 22:16:34] DEBUG von setup.sh:718 +[2025-06-03 22:24:30] DEBUG von setup.sh:732 Externe IP ermittelt über ifconfig.me: 163.116.179.142 --- -[2025-06-03 22:16:44] DEBUG von setup.sh:1134 +[2025-06-03 22:24:40] DEBUG von setup.sh:1148 sysctl-Konfiguration erstellt: /etc/sysctl.d/99-myp-security.conf --- -[2025-06-03 22:16:44] DEBUG von setup.sh:1190 +[2025-06-03 22:24:40] DEBUG von setup.sh:1204 Sysctl-Phase abgeschlossen - fahre mit Installation fort --- -[2025-06-03 22:16:44] DEBUG von setup.sh:1216 +[2025-06-03 22:24:40] DEBUG von setup.sh:1230 systemd-networkd nicht aktiv - überspringe --- -[2025-06-03 22:16:44] DEBUG von setup.sh:1242 +[2025-06-03 22:24:40] DEBUG von setup.sh:1256 NetworkManager nicht aktiv - überspringe --- -[2025-06-03 22:16:44] DEBUG von setup.sh:1248 +[2025-06-03 22:24:40] DEBUG von setup.sh:1262 IPv6 Einträge in /etc/hosts auskommentiert --- -[2025-06-03 22:16:44] DEBUG von setup.sh:1265 +[2025-06-03 22:24:40] DEBUG von setup.sh:1279 Netzwerk-Sicherheit ohne Blockierung abgeschlossen --- diff --git a/backend/logs/myp-install-errors.log b/backend/logs/myp-install-errors.log index 2cc9c175..1f4b2094 100644 --- a/backend/logs/myp-install-errors.log +++ b/backend/logs/myp-install-errors.log @@ -1,4 +1,4 @@ ================================================================= -MYP Installation FEHLER Log - 2025-06-03 22:16:33 +MYP Installation FEHLER Log - 2025-06-03 22:24:29 ================================================================= diff --git a/backend/logs/myp-install-warnings.log b/backend/logs/myp-install-warnings.log index afce4898..e5793822 100644 --- a/backend/logs/myp-install-warnings.log +++ b/backend/logs/myp-install-warnings.log @@ -1,4 +1,4 @@ ================================================================= -MYP Installation WARNUNGEN Log - 2025-06-03 22:16:33 +MYP Installation WARNUNGEN Log - 2025-06-03 22:24:29 ================================================================= diff --git a/backend/logs/myp-install.log b/backend/logs/myp-install.log index dae2898d..f26b51e3 100644 --- a/backend/logs/myp-install.log +++ b/backend/logs/myp-install.log @@ -1,25 +1,25 @@ ================================================================= -MYP Installation Log - 2025-06-03 22:16:33 +MYP Installation Log - 2025-06-03 22:24:29 Script Version: 4.1.0 System: Linux raspberrypi 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 GNU/Linux ================================================================= -[2025-06-03 22:16:33] === MODUS: VOLLSTÄNDIGE ROBUSTE KIOSK-INSTALLATION MIT REMOTE-ZUGANG === -[2025-06-03 22:16:33] ✅ Root-Berechtigung bestätigt -[2025-06-03 22:16:33] === SYSTEM-RESSOURCEN PRÜFUNG === +[2025-06-03 22:24:29] === MODUS: VOLLSTÄNDIGE ROBUSTE KIOSK-INSTALLATION MIT REMOTE-ZUGANG === +[2025-06-03 22:24:29] ✅ Root-Berechtigung bestätigt +[2025-06-03 22:24:29] === SYSTEM-RESSOURCEN PRÜFUNG === [FORTSCHRITT] Prüfe RAM... [FORTSCHRITT] Verfügbarer RAM: 15614MB [ERFOLG] ✅ Ausreichend RAM verfügbar (15614MB) [FORTSCHRITT] Prüfe Festplattenplatz... -[FORTSCHRITT] Verfügbarer Festplattenplatz: 12,0GB (12332MB) -[ERFOLG] ✅ Ausreichend Festplattenplatz verfügbar (12,0GB) +[FORTSCHRITT] Verfügbarer Festplattenplatz: 12,3GB (12584MB) +[ERFOLG] ✅ Ausreichend Festplattenplatz verfügbar (12,3GB) [FORTSCHRITT] Prüfe CPU... [FORTSCHRITT] CPU: 6 Kern(e) - 11th Gen Intel(R) Core(TM) i7-11850H @ 2.50GHz [ERFOLG] ✅ CPU-Information erfolgreich ermittelt -[2025-06-03 22:16:33] ✅ System-Ressourcen-Prüfung abgeschlossen +[2025-06-03 22:24:29] ✅ System-Ressourcen-Prüfung abgeschlossen [FORTSCHRITT] Prüfe Debian/Raspbian-System... [DEBUG] Debian erkannt über /etc/debian_version: 12.11 -[2025-06-03 22:16:33] ✅ Debian/Raspbian-basiertes System erkannt (Version: 12.11) +[2025-06-03 22:24:29] ✅ Debian/Raspbian-basiertes System erkannt (Version: 12.11) [FORTSCHRITT] Prüfe Raspberry Pi Hardware... [INFO] 💻 Standard-PC/Server System (kein Raspberry Pi) [DEBUG] Kein Raspberry Pi erkannt. Hardware-Info: @@ -31,7 +31,7 @@ System: Linux raspberrypi 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 [FORTSCHRITT] Prüfe Kernel-Version... [INFO] 🐧 Kernel-Version: 6.1.0-37-amd64 [DEBUG] Vollständige Kernel-Info: Linux raspberrypi 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 GNU/Linux -[2025-06-03 22:16:33] ✅ System-Analyse abgeschlossen +[2025-06-03 22:24:29] ✅ System-Analyse abgeschlossen [FORTSCHRITT] Prüfe Internetverbindung (erweiterte Methoden)... [FORTSCHRITT] Teste DNS-Auflösung... [DEBUG] DNS-Test Details: Teste DNS für 8.8.8.8: Erfolg mit nslookup.  @@ -40,11 +40,11 @@ System: Linux raspberrypi 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 [FORTSCHRITT] Ermittle externe IP-Adresse... [INFO] 🌐 Externe IP: 163.116.179.142 [DEBUG] Externe IP ermittelt über ifconfig.me: 163.116.179.142 -[2025-06-03 22:16:34] === KONFIGURIERE HOSTNAME === -[2025-06-03 22:16:34] ✅ Hostname bereits korrekt: 'raspberrypi' -[2025-06-03 22:16:44] ✅ Hostname-Auflösung funktioniert: raspberrypi -> 127.0.1.1 +[2025-06-03 22:24:30] === KONFIGURIERE HOSTNAME === +[2025-06-03 22:24:30] ✅ Hostname bereits korrekt: 'raspberrypi' +[2025-06-03 22:24:40] ✅ Hostname-Auflösung funktioniert: raspberrypi -> 127.0.1.1 [INFO] Anwendung bereits deployed - überspringe Basis-Installation -[2025-06-03 22:16:44] === KONFIGURIERE OPTIONALE NETZWERK-SICHERHEIT === +[2025-06-03 22:24:40] === KONFIGURIERE OPTIONALE NETZWERK-SICHERHEIT === [FORTSCHRITT] Deaktiviere IPv6 (robust)... [FORTSCHRITT] Deaktiviere IPv6 in GRUB... [INFO] IPv6 bereits in GRUB deaktiviert @@ -58,42 +58,37 @@ System: Linux raspberrypi 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 [DEBUG] systemd-networkd nicht aktiv - überspringe [DEBUG] NetworkManager nicht aktiv - überspringe [DEBUG] IPv6 Einträge in /etc/hosts auskommentiert -[2025-06-03 22:16:44] ✅ Optionale Netzwerk-Sicherheit konfiguriert: -[2025-06-03 22:16:44] 📝 Sysctl-Konfiguration erstellt: /etc/sysctl.d/99-myp-security.conf -[2025-06-03 22:16:44] ⚙️ Einstellungen werden beim nächsten Boot aktiv -[2025-06-03 22:16:44] 🔧 Netzwerk-Konfiguration vorbereitet +[2025-06-03 22:24:40] ✅ Optionale Netzwerk-Sicherheit konfiguriert: +[2025-06-03 22:24:40] 📝 Sysctl-Konfiguration erstellt: /etc/sysctl.d/99-myp-security.conf +[2025-06-03 22:24:40] ⚙️ Einstellungen werden beim nächsten Boot aktiv +[2025-06-03 22:24:40] 🔧 Netzwerk-Konfiguration vorbereitet [INFO] 💡 Tipp: Netzwerk-Sicherheit kann manuell aktiviert werden: [INFO] → sudo sysctl -p /etc/sysctl.d/99-myp-security.conf [INFO] → Oder automatisch beim nächsten Neustart [DEBUG] Netzwerk-Sicherheit ohne Blockierung abgeschlossen -[2025-06-03 22:16:44] === ENTFERNE DESKTOP ENVIRONMENTS FÜR KIOSK-MODUS === +[2025-06-03 22:24:40] === ENTFERNE DESKTOP ENVIRONMENTS FÜR KIOSK-MODUS === [FORTSCHRITT] Stoppe alle Desktop-Services... [FORTSCHRITT] Entferne Desktop-Pakete vollständig... -[2025-06-03 22:17:13] ✅ Desktop Environments vollständig entfernt -[2025-06-03 22:17:13] === INSTALLIERE MINIMALE X11-UMGEBUNG FÜR KIOSK === +[2025-06-03 22:24:42] ✅ Desktop Environments vollständig entfernt +[2025-06-03 22:24:42] === INSTALLIERE MINIMALE X11-UMGEBUNG FÜR KIOSK === [FORTSCHRITT] Installiere minimale X11-Pakete... [FORTSCHRITT] Installiere Browser für Kiosk-Modus... -[2025-06-03 22:17:45] ✅ Chromium erfolgreich installiert -[2025-06-03 22:17:45] ✅ Minimale X11-Umgebung installiert -[2025-06-03 22:17:45] === WEBAPP PERFORMANCE-OPTIMIERUNG FÜR RASPBERRY PI === +[2025-06-03 22:24:43] ✅ Chromium erfolgreich installiert +[2025-06-03 22:24:43] ✅ Minimale X11-Umgebung installiert +[2025-06-03 22:24:43] === WEBAPP PERFORMANCE-OPTIMIERUNG FÜR RASPBERRY PI === [FORTSCHRITT] Konfiguriere Python-Performance-Optimierungen... [FORTSCHRITT] Optimiere Systemd-Services für bessere Performance... -[2025-06-03 22:17:46] ✅ Service deaktiviert: bluetooth.service -[2025-06-03 22:17:46] ✅ Service deaktiviert: avahi-daemon.service -[2025-06-03 22:17:46] ✅ Service deaktiviert: cups.service -[2025-06-03 22:17:47] ✅ Service deaktiviert: cups-browsed.service -[2025-06-03 22:17:47] ✅ Service deaktiviert: wpa_supplicant.service [FORTSCHRITT] Konfiguriere tmpfs für bessere I/O Performance... [FORTSCHRITT] Optimiere systemd Journal für bessere Performance... [FORTSCHRITT] Installiere automatische Cache-Bereinigung... [FORTSCHRITT] Konfiguriere System-Limits... [FORTSCHRITT] Entferne konfliktbehaftete Webserver... -[2025-06-03 22:17:47] ✅ Webapp Performance-Optimierung abgeschlossen: -[2025-06-03 22:17:47] 🚀 Python Bytecode-Optimierung aktiviert -[2025-06-03 22:17:47] 💾 tmpfs für temporäre Dateien konfiguriert -[2025-06-03 22:17:47] 📝 Journal-Logging optimiert -[2025-06-03 22:17:47] 🧹 Automatische Cache-Bereinigung installiert -[2025-06-03 22:17:47] ⚡ Unnötige Services deaktiviert -[2025-06-03 22:17:47] 📊 System-Limits für bessere Performance gesetzt -[2025-06-03 22:17:47] === STATISCHE DATEIEN OPTIMIERUNG === +[2025-06-03 22:24:43] ✅ Webapp Performance-Optimierung abgeschlossen: +[2025-06-03 22:24:43] 🚀 Python Bytecode-Optimierung aktiviert +[2025-06-03 22:24:43] 💾 tmpfs für temporäre Dateien konfiguriert +[2025-06-03 22:24:43] 📝 Journal-Logging optimiert +[2025-06-03 22:24:43] 🧹 Automatische Cache-Bereinigung installiert +[2025-06-03 22:24:43] ⚡ Unnötige Services deaktiviert +[2025-06-03 22:24:43] 📊 System-Limits für bessere Performance gesetzt +[2025-06-03 22:24:43] === STATISCHE DATEIEN OPTIMIERUNG === [FORTSCHRITT] Analysiere und optimiere CSS/JS Dateien... diff --git a/backend/setup.sh b/backend/setup.sh index 3e45092e..da0257e7 100755 --- a/backend/setup.sh +++ b/backend/setup.sh @@ -24,10 +24,11 @@ readonly WATCHDOG_PYTHON_SERVICE_NAME="kiosk-watchdog-python" readonly FIREWALL_SERVICE_NAME="myp-firewall" readonly KIOSK_USER="kiosk" readonly CURRENT_DIR="$(pwd)" -readonly INSTALL_LOG="logs/myp-install.log" -readonly ERROR_LOG="logs/myp-install-errors.log" -readonly WARNING_LOG="logs/myp-install-warnings.log" -readonly DEBUG_LOG="logs/myp-install-debug.log" +# Log-Dateien (nicht readonly, damit wir Fallback nutzen können) +INSTALL_LOG="logs/myp-install.log" +ERROR_LOG="logs/myp-install-errors.log" +WARNING_LOG="logs/myp-install-warnings.log" +DEBUG_LOG="logs/myp-install-debug.log" readonly HTTPS_PORT="443" readonly HTTPS_URL="https://localhost:${HTTPS_PORT}" readonly SYSTEMD_DIR="$CURRENT_DIR/systemd" @@ -53,8 +54,35 @@ WARNING_COUNT=0 # Log-Dateien initialisieren init_logging() { - # Erstelle logs-Verzeichnis falls nötig - mkdir -p "logs" 2>/dev/null || true + # Versuche logs-Verzeichnis in verschiedenen Locations zu erstellen + local log_dir_created=false + + # Versuch 1: Im aktuellen Arbeitsverzeichnis + if mkdir -p "logs" 2>/dev/null; then + log_dir_created=true + fi + + # Versuch 2: Im CURRENT_DIR (falls gesetzt und verschieden) + if [ "$log_dir_created" = false ] && [ -n "$CURRENT_DIR" ] && [ "$CURRENT_DIR" != "$(pwd)" ]; then + if mkdir -p "$CURRENT_DIR/logs" 2>/dev/null; then + log_dir_created=true + # Aktualisiere Pfade + INSTALL_LOG="$CURRENT_DIR/logs/myp-install.log" + ERROR_LOG="$CURRENT_DIR/logs/myp-install-errors.log" + WARNING_LOG="$CURRENT_DIR/logs/myp-install-warnings.log" + DEBUG_LOG="$CURRENT_DIR/logs/myp-install-debug.log" + fi + fi + + # Versuch 3: Fallback auf /tmp + if [ "$log_dir_created" = false ] || [ ! -w "logs" -a ! -w "$CURRENT_DIR/logs" ]; then + # Fallback auf /tmp wenn logs nicht schreibbar + export INSTALL_LOG="/tmp/myp-install.log" + export ERROR_LOG="/tmp/myp-install-errors.log" + export WARNING_LOG="/tmp/myp-install-warnings.log" + export DEBUG_LOG="/tmp/myp-install-debug.log" + echo "WARNUNG: logs-Verzeichnis nicht erstellbar, verwende /tmp" >&2 + fi # Initialisiere alle Log-Dateien { @@ -2445,6 +2473,9 @@ show_menu() { # =========================== INSTALLATIONS-MODI =========================== install_dependencies_only() { + # Erstelle logs-Verzeichnis SOFORT + mkdir -p "$CURRENT_DIR/logs" 2>/dev/null || mkdir -p "logs" 2>/dev/null || true + # Logging initialisieren init_logging @@ -2535,6 +2566,9 @@ install_dependencies_only() { } install_full_production_system() { + # Erstelle logs-Verzeichnis SOFORT + mkdir -p "$CURRENT_DIR/logs" 2>/dev/null || mkdir -p "logs" 2>/dev/null || true + # Logging initialisieren init_logging @@ -2575,7 +2609,13 @@ install_full_production_system() { # Performance-Optimierungen für Raspberry Pi Webapp optimize_webapp_performance - optimize_static_assets + + # Static Assets nur optimieren wenn App deployed wurde + if [ -d "$APP_DIR" ] && [ -d "$APP_DIR/static" ]; then + optimize_static_assets + else + info "⏭️ Static Asset Optimierung übersprungen - App noch nicht deployed" + fi # Remote-Zugang konfigurieren (robust) install_remote_access @@ -3336,14 +3376,27 @@ EOF optimize_static_assets() { log "=== STATISCHE DATEIEN OPTIMIERUNG ===" + # Stelle sicher, dass APP_DIR existiert + if [ -z "$APP_DIR" ] || [ ! -d "$APP_DIR" ]; then + warning "⚠️ APP_DIR nicht definiert oder nicht vorhanden - überspringe Asset-Optimierung" + return + fi + if [ ! -d "$APP_DIR/static" ]; then - warning "Static-Ordner nicht gefunden - überspringe Asset-Optimierung" + warning "⚠️ Static-Ordner nicht gefunden: $APP_DIR/static - überspringe Asset-Optimierung" return fi progress "Analysiere und optimiere CSS/JS Dateien..." - cd "$APP_DIR/static" + # Speichere aktuelles Verzeichnis + local original_dir=$(pwd) + + # Wechsle zu static Verzeichnis + cd "$APP_DIR/static" 2>/dev/null || { + warning "⚠️ Konnte nicht zu $APP_DIR/static wechseln" + return + } # Erstelle optimierte CSS-Datei durch Kombination kritischer Styles progress "Erstelle optimierte CSS-Kombination..." @@ -3413,7 +3466,8 @@ EOF fi done - cd "$CURRENT_DIR" + # Zurück zum Original-Verzeichnis + cd "$original_dir" 2>/dev/null || cd "$CURRENT_DIR" 2>/dev/null || true log "✅ Statische Dateien optimiert:" log " 📦 Kritische CSS-Styles kombiniert" @@ -3424,8 +3478,14 @@ EOF # =========================== HAUPTPROGRAMM =========================== main() { + # Stelle sicher, dass wir im richtigen Verzeichnis sind + cd "$CURRENT_DIR" 2>/dev/null || true + # Erstelle logs-Verzeichnis im aktuellen Projektverzeichnis - mkdir -p "logs" 2>/dev/null || true + mkdir -p "$CURRENT_DIR/logs" 2>/dev/null || { + # Fallback: Erstelle logs im aktuellen Verzeichnis + mkdir -p "logs" 2>/dev/null || true + } while true; do show_menu