📚 Improved IHK Projektdokumentation and logs for better clarity & error handling in backend installation process. 🖥️🔍

This commit is contained in:
2025-06-03 21:27:04 +02:00
parent d861cf3312
commit 690aa8835e
6 changed files with 291 additions and 359 deletions

View File

@ -1,72 +1,32 @@
=================================================================
MYP Installation DEBUG Log - 2025-06-03 20:57:58
MYP Installation DEBUG Log - 2025-06-03 21:26:54
=================================================================
[2025-06-03 20:57:58] DEBUG von setup.sh:449
[2025-06-03 21:26:54] DEBUG von setup.sh:485
Debian erkannt über /etc/debian_version: 12.11
---
[2025-06-03 20:57:58] DEBUG von setup.sh:517
[2025-06-03 21:26:54] DEBUG von setup.sh:553
Kein Raspberry Pi erkannt. Hardware-Info:
---
[2025-06-03 20:57:58] DEBUG von setup.sh:518
[2025-06-03 21:26:54] DEBUG von setup.sh:554
- Device Tree: nicht verfügbar
---
[2025-06-03 20:57:58] DEBUG von setup.sh:519
[2025-06-03 21:26:54] DEBUG von setup.sh:555
- CPU Hardware: nicht verfügbar
---
[2025-06-03 20:57:58] DEBUG von setup.sh:559
Vollständige Kernel-Info: Linux debian 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 GNU/Linux
[2025-06-03 21:26:54] DEBUG von setup.sh:595
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 20:57:58] DEBUG von setup.sh:615
[2025-06-03 21:26:56] DEBUG von setup.sh:651
DNS-Test Details: Teste DNS für 8.8.8.8: Erfolg mit nslookup.
---
[2025-06-03 20:57:58] DEBUG von setup.sh:716
[2025-06-03 21:26:56] DEBUG von setup.sh:752
Externe IP ermittelt über ifconfig.me: 163.116.179.142
---
[2025-06-03 20:58:45] DEBUG von setup.sh:1132
sysctl-Konfiguration erstellt: /etc/sysctl.d/99-myp-security.conf
---
[2025-06-03 20:58:45] DEBUG von setup.sh:1188
Sysctl-Phase abgeschlossen - fahre mit Installation fort
---
[2025-06-03 20:58:45] DEBUG von setup.sh:1214
systemd-networkd nicht aktiv - überspringe
---
[2025-06-03 20:58:45] DEBUG von setup.sh:1240
NetworkManager nicht aktiv - überspringe
---
[2025-06-03 20:58:45] DEBUG von setup.sh:1246
IPv6 Einträge in /etc/hosts auskommentiert
---
[2025-06-03 20:58:45] DEBUG von setup.sh:1263
Netzwerk-Sicherheit ohne Blockierung abgeschlossen
---
[2025-06-03 21:02:02] DEBUG von setup.sh:1569
SSL-Verzeichnis erstellt: /usr/local/share/ca-certificates/myp
---
[2025-06-03 21:02:07] DEBUG von setup.sh:1677
SSL-Konfiguration abgeschlossen ohne hängende Prozesse
---
[2025-06-03 21:02:50] DEBUG von setup.sh:962
flask erfolgreich importiert
---
[2025-06-03 21:02:50] DEBUG von setup.sh:962
requests erfolgreich importiert
---

View File

@ -1,4 +1,4 @@
=================================================================
MYP Installation FEHLER Log - 2025-06-03 20:57:58
MYP Installation FEHLER Log - 2025-06-03 21:26:54
=================================================================

View File

@ -1,4 +1,4 @@
=================================================================
MYP Installation WARNUNGEN Log - 2025-06-03 20:57:58
MYP Installation WARNUNGEN Log - 2025-06-03 21:26:54
=================================================================

View File

@ -1,25 +1,25 @@
=================================================================
MYP Installation Log - 2025-06-03 20:57:58
MYP Installation Log - 2025-06-03 21:26:54
Script Version: 4.1.0
System: Linux debian 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 GNU/Linux
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 20:57:58] === MODUS: ROBUSTE ABHÄNGIGKEITEN-INSTALLATION FÜR MANUELLES TESTEN ===
[2025-06-03 20:57:58] ✅ Root-Berechtigung bestätigt
[2025-06-03 20:57:58] === SYSTEM-RESSOURCEN PRÜFUNG ===
[2025-06-03 21:26:54] === MODUS: ROBUSTE ABHÄNGIGKEITEN-INSTALLATION FÜR MANUELLES TESTEN ===
[2025-06-03 21:26:54] ✅ Root-Berechtigung bestätigt
[2025-06-03 21:26:54] === 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: 13,2GB (13473MB)
[ERFOLG] ✅ Ausreichend Festplattenplatz verfügbar (13,2GB)
[FORTSCHRITT] Verfügbarer Festplattenplatz: 12,2GB (12473MB)
[ERFOLG] ✅ Ausreichend Festplattenplatz verfügbar (12,2GB)
[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 20:57:58] ✅ System-Ressourcen-Prüfung abgeschlossen
[2025-06-03 21:26:54] ✅ System-Ressourcen-Prüfung abgeschlossen
[FORTSCHRITT] Prüfe Debian/Raspbian-System...
[DEBUG] Debian erkannt über /etc/debian_version: 12.11
[2025-06-03 20:57:58] ✅ Debian/Raspbian-basiertes System erkannt (Version: 12.11)
[2025-06-03 21:26:54] ✅ 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:
@ -30,8 +30,8 @@ System: Linux debian 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (202
[INFO] → 64-Bit x86 Architektur erkannt
[FORTSCHRITT] Prüfe Kernel-Version...
[INFO] 🐧 Kernel-Version: 6.1.0-37-amd64
[DEBUG] Vollständige Kernel-Info: Linux debian 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 GNU/Linux
[2025-06-03 20:57:58] ✅ System-Analyse abgeschlossen
[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 21:26:54] ✅ 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,158 +40,5 @@ System: Linux debian 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (202
[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 20:57:58] === KONFIGURIERE HOSTNAME ===
[FORTSCHRITT] Setze Hostname von 'debian' auf 'raspberrypi'...
[2025-06-03 20:57:58] ✅ Hostname erfolgreich auf 'raspberrypi' gesetzt
[2025-06-03 20:58:09] ✅ Hostname-Auflösung funktioniert: raspberrypi -> 127.0.1.1
[2025-06-03 20:58:09] === ROBUSTE SYSTEM-UPDATE ===
[FORTSCHRITT] Konfiguriere APT für bessere Zuverlässigkeit...
[FORTSCHRITT] Validiere APT-Repositories...
[2025-06-03 20:58:09] ✅ Source-Repositories deaktiviert (nicht benötigt)
[FORTSCHRITT] Aktualisiere Paketlisten mit Retry...
[FORTSCHRITT] Führe System-Upgrade durch...
[FORTSCHRITT] Installiere essenzielle System-Tools...
[FORTSCHRITT] Installiere Pakete: ca-certificates
[FORTSCHRITT] Installiere Pakete: gnupg
[FORTSCHRITT] Installiere Pakete: curl
[FORTSCHRITT] Installiere Pakete: wget
[FORTSCHRITT] Installiere Pakete: git
[FORTSCHRITT] Installiere Pakete: nano
[FORTSCHRITT] Installiere Pakete: htop
[FORTSCHRITT] Installiere Pakete: rsync
[FORTSCHRITT] Installiere Pakete: unzip
[FORTSCHRITT] Installiere Pakete: sudo
[FORTSCHRITT] Installiere Pakete: systemd
[FORTSCHRITT] Installiere Pakete: lsb-release
[FORTSCHRITT] Installiere Pakete: apt-transport-https
[FORTSCHRITT] Installiere Pakete: software-properties-common
[FORTSCHRITT] Installiere Pakete: bc
[FORTSCHRITT] Installiere Pakete: dbus
[FORTSCHRITT] Installiere Pakete: systemd-timesyncd
[FORTSCHRITT] Synchronisiere Systemzeit...
[2025-06-03 20:58:40] ✅ Robustes System-Update abgeschlossen
[2025-06-03 20:58:40] === KONFIGURIERE OPTIONALE NETZWERK-SICHERHEIT ===
[FORTSCHRITT] Deaktiviere IPv6 (robust)...
[FORTSCHRITT] Deaktiviere IPv6 in GRUB...
[ERFOLG] ✅ IPv6 in GRUB deaktiviert
[FORTSCHRITT] Erstelle robuste sysctl-Konfiguration...
[ERFOLG] ✅ Basis-sysctl-Konfiguration erstellt
[DEBUG] sysctl-Konfiguration erstellt: /etc/sysctl.d/99-myp-security.conf
[FORTSCHRITT] OPTIONAL: Versuche sysctl-Einstellungen anzuwenden...
[ERFOLG] ✅ MYP sysctl-Einstellungen angewendet
[DEBUG] Sysctl-Phase abgeschlossen - fahre mit Installation fort
[FORTSCHRITT] Deaktiviere IPv6 in Netzwerk-Interfaces (vorsichtig)...
[DEBUG] systemd-networkd nicht aktiv - überspringe
[DEBUG] NetworkManager nicht aktiv - überspringe
[DEBUG] IPv6 Einträge in /etc/hosts auskommentiert
[2025-06-03 20:58:45] ✅ Optionale Netzwerk-Sicherheit konfiguriert:
[2025-06-03 20:58:45] 📝 Sysctl-Konfiguration erstellt: /etc/sysctl.d/99-myp-security.conf
[2025-06-03 20:58:45] ⚙️ Einstellungen werden beim nächsten Boot aktiv
[2025-06-03 20:58:45] 🔧 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 20:58:45] === ROBUSTE PYTHON-INSTALLATION ===
[FORTSCHRITT] Installiere Python 3 und Build-Abhängigkeiten...
[FORTSCHRITT] Installiere Pakete: python3
[FORTSCHRITT] Installiere Pakete: python3-pip
[FORTSCHRITT] Installiere Pakete: python3-dev
[FORTSCHRITT] Installiere Pakete: python3-setuptools
[FORTSCHRITT] Installiere Pakete: python3-venv
[FORTSCHRITT] Installiere Pakete: python3-wheel
[FORTSCHRITT] Installiere Pakete: build-essential
[FORTSCHRITT] Installiere Pakete: libssl-dev
[FORTSCHRITT] Installiere Pakete: libffi-dev
[FORTSCHRITT] Installiere Pakete: libbz2-dev
[FORTSCHRITT] Installiere Pakete: libreadline-dev
[FORTSCHRITT] Installiere Pakete: libsqlite3-dev
[FORTSCHRITT] Installiere Pakete: libncurses5-dev
[FORTSCHRITT] Installiere Pakete: libncursesw5-dev
[FORTSCHRITT] Installiere Pakete: zlib1g-dev
[FORTSCHRITT] Installiere Pakete: sqlite3
[FORTSCHRITT] Validiere Python-Installation...
[2025-06-03 20:59:51] ✅ Python Version: 3.11.2
[FORTSCHRITT] Konfiguriere pip für bessere Zuverlässigkeit...
[FORTSCHRITT] Erstelle systemweite pip-Konfiguration...
[FORTSCHRITT] Konfiguriere pip für alle Benutzer...
[2025-06-03 20:59:51] ✅ pip konfiguriert für Benutzer: user
[FORTSCHRITT] Aktualisiere pip mit Retry...
[2025-06-03 20:59:55] ✅ pip Version: 25.1.1
[2025-06-03 20:59:55] ✅ Robuste Python-Umgebung installiert
[2025-06-03 20:59:55] === ROBUSTE NODE.JS UND NPM INSTALLATION ===
[FORTSCHRITT] Bereinige alte Node.js-Installationen...
[FORTSCHRITT] Installiere Node.js mit Fallback-Strategie...
[FORTSCHRITT] Verwende Debian Repository als Fallback...
[FORTSCHRITT] Installiere Pakete: nodejs npm
[2025-06-03 21:01:58] ✅ Node.js via Debian Repository installiert
[FORTSCHRITT] Validiere Node.js Installation...
[2025-06-03 21:01:58] ✅ Node.js Version: v18.19.0
[2025-06-03 21:01:59] ✅ npm Version: 9.2.0
[FORTSCHRITT] Optimiere npm-Konfiguration...
[2025-06-03 21:02:01] ✅ Node.js und npm erfolgreich installiert
[2025-06-03 21:02:01] === TIMEOUT-GESICHERTE SSL-ZERTIFIKATE KONFIGURATION ===
[FORTSCHRITT] Installiere SSL-Grundkomponenten...
[FORTSCHRITT] Installiere Pakete: ca-certificates openssl
[FORTSCHRITT] Aktualisiere CA-Zertifikate (timeout-gesichert)...
[ERFOLG] ✅ CA-Zertifikate erfolgreich aktualisiert
[DEBUG] SSL-Verzeichnis erstellt: /usr/local/share/ca-certificates/myp
[FORTSCHRITT] Installiere Mercedes Corporate Zertifikate (timeout-gesichert)...
[FORTSCHRITT] Lade CA-Zertifikate nach Mercedes-Import neu (timeout-gesichert)...
[ERFOLG] ✅ Mercedes-Zertifikate erfolgreich in CA-Store integriert
[FORTSCHRITT] Konfiguriere SSL-Umgebungsvariablen...
[FORTSCHRITT] Validiere SSL-Konfiguration...
[2025-06-03 21:02:06] ✅ SSL-Zertifikate verfügbar: 144 CA-Zertifikate
[FORTSCHRITT] Finalisiere SSL-Konfiguration...
[ERFOLG] ✅ Finale CA-Zertifikate Integration abgeschlossen
[2025-06-03 21:02:07] ✅ SSL-Zertifikate timeout-gesichert konfiguriert
[DEBUG] SSL-Konfiguration abgeschlossen ohne hängende Prozesse
[2025-06-03 21:02:07] === PYTHON-PAKETE INSTALLATION ===
[FORTSCHRITT] Installiere Python-Pakete...
[FORTSCHRITT] Installiere requirements.txt...
[ERFOLG] ✅ requirements.txt erfolgreich installiert
[FORTSCHRITT] Validiere essenzielle Python-Module...
[DEBUG] flask erfolgreich importiert
[DEBUG] requests erfolgreich importiert
[ERFOLG] ✅ Essenzielle Python-Module verfügbar
[2025-06-03 21:02:50] ✅ Python-Pakete Installation abgeschlossen
[FORTSCHRITT] Zeige installierte Python-Pakete...
[2025-06-03 21:02:50] === ROBUSTES ANWENDUNGS-DEPLOYMENT ===
[FORTSCHRITT] Erstelle sicheres Zielverzeichnis: /opt/myp
[FORTSCHRITT] Validiere Source-Dateien...
[FORTSCHRITT] Kopiere Anwendungsdateien (robust)...
[FORTSCHRITT] Kopiere kritische Datei: app.py
[ERFOLG] ✅ app.py erfolgreich kopiert
[FORTSCHRITT] Kopiere kritische Datei: models.py
[ERFOLG] ✅ models.py erfolgreich kopiert
[FORTSCHRITT] Kopiere kritische Datei: requirements.txt
[ERFOLG] ✅ requirements.txt erfolgreich kopiert
[FORTSCHRITT] Kopiere Verzeichnis: blueprints
[ERFOLG] ✅ blueprints erfolgreich kopiert
[FORTSCHRITT] Kopiere Verzeichnis: config
[ERFOLG] ✅ config erfolgreich kopiert
[FORTSCHRITT] Kopiere Verzeichnis: database
[ERFOLG] ✅ database erfolgreich kopiert
[FORTSCHRITT] Kopiere Verzeichnis: static
[ERFOLG] ✅ static erfolgreich kopiert
[FORTSCHRITT] Kopiere Verzeichnis: templates
[ERFOLG] ✅ templates erfolgreich kopiert
[FORTSCHRITT] Kopiere Verzeichnis: uploads
[ERFOLG] ✅ uploads erfolgreich kopiert
[FORTSCHRITT] Kopiere Verzeichnis: utils
[ERFOLG] ✅ utils erfolgreich kopiert
[FORTSCHRITT] Kopiere Verzeichnis: logs
[ERFOLG] ✅ logs erfolgreich kopiert
[FORTSCHRITT] Kopiere Verzeichnis: certs
[ERFOLG] ✅ certs erfolgreich kopiert
[FORTSCHRITT] Kopiere optionale Datei: package.json
[FORTSCHRITT] Kopiere optionale Datei: package-lock.json
[FORTSCHRITT] Kopiere optionale Datei: tailwind.config.js
[FORTSCHRITT] Kopiere optionale Datei: postcss.config.js
[FORTSCHRITT] Kopiere optionale Datei: README.md
[FORTSCHRITT] Erstelle Verzeichnisstruktur...
[FORTSCHRITT] Setze sichere Berechtigungen...
[FORTSCHRITT] Konfiguriere robuste Python-Umgebung...
[2025-06-03 21:03:16] ✅ Python-Pfad konfiguriert: /usr/local/lib/python3.11/dist-packages/myp-app.pth
[FORTSCHRITT] Konfiguriere Umgebungsvariablen...
[FORTSCHRITT] Aktualisiere Bash-Profile...
[2025-06-03 21:26:56] === KONFIGURIERE HOSTNAME ===
[2025-06-03 21:26:56] ✅ Hostname bereits korrekt: 'raspberrypi'

View File

@ -11,6 +11,42 @@
set -euo pipefail
# =========================== KOMMANDOZEILEN-PARAMETER =======================
# Erkenne Skip-Parameter
SKIP_BASH_PROFILE=false
SKIP_SYSTEMD=false
SKIP_KIOSK=false
for arg in "$@"; do
case $arg in
--skip-bash-profile)
SKIP_BASH_PROFILE=true
;;
--skip-systemd)
SKIP_SYSTEMD=true
;;
--skip-kiosk)
SKIP_KIOSK=true
;;
--wsl|--dev)
# WSL/Development-Modus: Überspringe systemspezifische Schritte
SKIP_BASH_PROFILE=true
SKIP_SYSTEMD=true
SKIP_KIOSK=true
echo "WSL/Development-Modus aktiviert - systemspezifische Schritte werden übersprungen"
;;
--help|-h)
echo "MYP Setup-Skript - Optionen:"
echo " --skip-bash-profile Überspringe Bash-Profile Updates"
echo " --skip-systemd Überspringe Systemd-Service Installation"
echo " --skip-kiosk Überspringe Kiosk-Modus Konfiguration"
echo " --wsl, --dev WSL/Development-Modus (überspringt alle systemspezifischen Schritte)"
echo " --help, -h Zeige diese Hilfe"
exit 0
;;
esac
done
# =========================== GLOBALE KONFIGURATION ===========================
readonly APP_NAME="MYP Druckerverwaltung"
readonly APP_VERSION="4.1.0"
@ -1839,32 +1875,85 @@ FLASK_ENV=production
EOF
# Bash-Profile für alle User aktualisieren (robust)
if [ "$SKIP_BASH_PROFILE" = true ]; then
log "⏭️ Bash-Profile Update übersprungen (--skip-bash-profile oder --wsl/--dev)"
return
fi
progress "Aktualisiere Bash-Profile..."
local profile_updated=0
for user_home in "/root" "/home/"*; do
if [ -d "$user_home" ] && [ "$user_home" != "/home/lost+found" ] && [ -w "$user_home" ]; then
if ! grep -q "MYP Application Environment" "$user_home/.bashrc" 2>/dev/null; then
cat >> "$user_home/.bashrc" << 'EOF'
# WSL-Erkennung
local is_wsl=false
if grep -qEi "(Microsoft|WSL)" /proc/version 2>/dev/null || [ -n "${WSL_DISTRO_NAME:-}" ]; then
is_wsl=true
debug "WSL-Umgebung erkannt - verwende angepasste Bash-Profile-Logik"
fi
# Definiere die zu prüfenden Verzeichnisse basierend auf der Umgebung
local home_dirs=()
if [ "$is_wsl" = true ]; then
# In WSL nur das aktuelle Benutzerverzeichnis verwenden
if [ -n "${HOME:-}" ] && [ -d "$HOME" ]; then
home_dirs=("$HOME")
fi
# Füge /root nur hinzu wenn wir als root laufen
if [ "$(id -u)" = "0" ] && [ -d "/root" ] && [ -w "/root" ]; then
home_dirs+=("/root")
fi
else
# Standard-Verhalten für echtes Linux
home_dirs=("/root")
# Füge alle Home-Verzeichnisse hinzu, aber mit Timeout
while IFS= read -r -d '' user_home; do
if [ "$user_home" != "/home/lost+found" ]; then
home_dirs+=("$user_home")
fi
done < <(find /home -maxdepth 1 -type d -print0 2>/dev/null | head -20)
fi
# Aktualisiere Bash-Profile mit Timeout
for user_home in "${home_dirs[@]}"; do
if [ -d "$user_home" ] && [ -w "$user_home" ]; then
# Prüfe ob .bashrc existiert und lesbar ist
if [ -f "$user_home/.bashrc" ] && [ -r "$user_home/.bashrc" ]; then
# Verwende timeout um hängende Operationen zu vermeiden
if timeout 5s grep -q "MYP Application Environment" "$user_home/.bashrc" 2>/dev/null; then
debug "Bash-Profile bereits konfiguriert: $user_home/.bashrc"
else
# Schreibe mit timeout und prüfe Erfolg
if timeout 5s bash -c "cat >> '$user_home/.bashrc' << 'EOF'
# MYP Application Environment
if [ -d "/opt/myp" ]; then
export MYP_APP_DIR="/opt/myp"
export FLASK_APP="/opt/myp/app.py"
export FLASK_ENV="production"
if [ -z "${PYTHONPATH:-}" ]; then
export PYTHONPATH="/opt/myp"
if [ -d \"/opt/myp\" ]; then
export MYP_APP_DIR=\"/opt/myp\"
export FLASK_APP=\"/opt/myp/app.py\"
export FLASK_ENV=\"production\"
if [ -z \"\${PYTHONPATH:-}\" ]; then
export PYTHONPATH=\"/opt/myp\"
else
export PYTHONPATH="/opt/myp:$PYTHONPATH"
export PYTHONPATH=\"/opt/myp:\$PYTHONPATH\"
fi
fi
EOF
((profile_updated++))
log "✅ Bash-Profile aktualisiert: $user_home/.bashrc"
EOF" 2>/dev/null; then
((profile_updated++))
log "✅ Bash-Profile aktualisiert: $user_home/.bashrc"
else
warning "⚠️ Konnte Bash-Profile nicht aktualisieren: $user_home/.bashrc"
fi
fi
else
debug "Überspringe nicht-existierendes/unlesbares .bashrc: $user_home/.bashrc"
fi
else
debug "Überspringe nicht-schreibbares Verzeichnis: $user_home"
fi
done
if [ $profile_updated -eq 0 ] && [ "$is_wsl" = false ]; then
warning "⚠️ Keine Bash-Profile wurden aktualisiert"
fi
# Validiere Deployment
progress "Validiere Application Deployment..."
local validation_errors=0