📚 Improved documentation and log management in backend 🖥️🔍
This commit is contained in:
163
backend/setup.sh
163
backend/setup.sh
@@ -930,9 +930,9 @@ EOF
|
||||
}
|
||||
|
||||
install_python_packages() {
|
||||
log "=== TIMEOUT-GESICHERTE PYTHON-PAKETE INSTALLATION ==="
|
||||
log "=== PYTHON-PAKETE INSTALLATION ==="
|
||||
|
||||
progress "Installiere Python-Pakete mit Timeout-Sicherung..."
|
||||
progress "Installiere Python-Pakete..."
|
||||
|
||||
if [ ! -f "$CURRENT_DIR/requirements.txt" ]; then
|
||||
error "requirements.txt nicht gefunden: $CURRENT_DIR/requirements.txt"
|
||||
@@ -941,81 +941,24 @@ install_python_packages() {
|
||||
# Kopiere requirements.txt
|
||||
cp "$CURRENT_DIR/requirements.txt" "$APP_DIR/" 2>/dev/null || true
|
||||
|
||||
# Timeout-gesicherte pip-Optionen
|
||||
local pip_opts="--break-system-packages --timeout 60 --retries 2 --trusted-host pypi.org --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --no-cache-dir"
|
||||
# Installiere alle Pakete aus requirements.txt
|
||||
progress "Installiere requirements.txt..."
|
||||
|
||||
# Strategie 1: Direkte Installation mit Timeout
|
||||
progress "Versuche direkte requirements.txt Installation (max 10 Minuten)..."
|
||||
|
||||
if timeout 600 python3 -m pip install $pip_opts -r "$CURRENT_DIR/requirements.txt" >/dev/null 2>&1; then
|
||||
if python3 -m pip install -r "$CURRENT_DIR/requirements.txt" --break-system-packages; then
|
||||
success "✅ requirements.txt erfolgreich installiert"
|
||||
return 0
|
||||
else
|
||||
warning "⚠️ Direkte Installation fehlgeschlagen oder Timeout - verwende minimale Installation"
|
||||
debug "requirements.txt Installation nach 600s abgebrochen"
|
||||
|
||||
# Strategie 2: Nur essenzielle Pakete (timeout-gesichert)
|
||||
progress "Installiere nur essenzielle Flask-Komponenten..."
|
||||
|
||||
# Minimale Flask-Installation für Funktionalität
|
||||
local essential_deps=(
|
||||
"Flask"
|
||||
"Werkzeug"
|
||||
"Jinja2"
|
||||
"requests"
|
||||
)
|
||||
|
||||
local installed_count=0
|
||||
for dep in "${essential_deps[@]}"; do
|
||||
progress "Installiere essenzielle Abhängigkeit: $dep"
|
||||
if timeout 120 python3 -m pip install $pip_opts "$dep" >/dev/null 2>&1; then
|
||||
success "✅ $dep erfolgreich installiert"
|
||||
((installed_count++))
|
||||
else
|
||||
warning "⚠️ $dep Installation fehlgeschlagen oder Timeout"
|
||||
debug "$dep Timeout oder Fehler bei Installation"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ $installed_count -eq 0 ]; then
|
||||
warning "⚠️ Keine Python-Pakete konnten installiert werden"
|
||||
warning "⚠️ Überspringe Python-Pakete Installation - verwende System-Pakete"
|
||||
|
||||
# Strategie 3: Fallback auf System-Pakete (APT)
|
||||
progress "Versuche System-Python-Pakete als Fallback..."
|
||||
local system_packages=("python3-flask" "python3-requests")
|
||||
local system_installed=0
|
||||
|
||||
for pkg in "${system_packages[@]}"; do
|
||||
if timeout 60 apt-get install -y "$pkg" >/dev/null 2>&1; then
|
||||
success "✅ System-Paket installiert: $pkg"
|
||||
((system_installed++))
|
||||
else
|
||||
debug "System-Paket fehlgeschlagen: $pkg"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ $system_installed -gt 0 ]; then
|
||||
success "✅ Fallback auf System-Pakete erfolgreich ($system_installed installiert)"
|
||||
else
|
||||
warning "⚠️ Auch System-Pakete Installation fehlgeschlagen"
|
||||
info " → System läuft mit vorhandenen Python-Paketen"
|
||||
info " → Manuell: pip3 install --break-system-packages Flask requests"
|
||||
info " → Oder: apt install python3-flask python3-requests"
|
||||
fi
|
||||
else
|
||||
success "✅ $installed_count von ${#essential_deps[@]} essenziellen Paketen installiert"
|
||||
fi
|
||||
error "❌ requirements.txt Installation fehlgeschlagen"
|
||||
return 1
|
||||
fi
|
||||
|
||||
# Schnelle Validierung nur der essenziellen Pakete (timeout-gesichert)
|
||||
# Validiere essenzielle Module
|
||||
progress "Validiere essenzielle Python-Module..."
|
||||
|
||||
local essential_modules=("flask" "requests")
|
||||
local validation_success=true
|
||||
|
||||
for module in "${essential_modules[@]}"; do
|
||||
if timeout 10 python3 -c "import $module; print(f'✅ $module verfügbar')" 2>/dev/null; then
|
||||
if python3 -c "import $module; print(f'✅ $module verfügbar')" 2>/dev/null; then
|
||||
debug "$module erfolgreich importiert"
|
||||
else
|
||||
warning "⚠️ $module nicht verfügbar"
|
||||
@@ -1027,12 +970,16 @@ install_python_packages() {
|
||||
success "✅ Essenzielle Python-Module verfügbar"
|
||||
else
|
||||
warning "⚠️ Einige essenzielle Module fehlen"
|
||||
info " → System funktioniert möglicherweise trotzdem"
|
||||
info " → Fehlende Pakete: pip3 install --break-system-packages Flask requests"
|
||||
fi
|
||||
|
||||
log "✅ Timeout-gesicherte Python-Pakete Installation abgeschlossen"
|
||||
debug "Python-Installation ohne hängende Prozesse beendet"
|
||||
log "✅ Python-Pakete Installation abgeschlossen"
|
||||
|
||||
# Zeige installierte Pakete
|
||||
progress "Zeige installierte Python-Pakete..."
|
||||
echo ""
|
||||
echo "📦 Installierte Python-Pakete:"
|
||||
python3 -m pip list 2>/dev/null | grep -E "(Flask|requests|Werkzeug|Jinja2)" | head -10 || echo " Keine relevanten Pakete gefunden"
|
||||
echo ""
|
||||
}
|
||||
|
||||
# =========================== ROBUSTE NODE.JS INSTALLATION ===========================
|
||||
@@ -2203,6 +2150,10 @@ enable_and_start_services() {
|
||||
test_application() {
|
||||
log "=== UMFASSENDE SYSTEM-TESTS ==="
|
||||
|
||||
echo ""
|
||||
echo -e "${BLUE}🔍 Führe System-Tests durch...${NC}"
|
||||
echo ""
|
||||
|
||||
local test_errors=0
|
||||
local test_warnings=0
|
||||
|
||||
@@ -2396,18 +2347,30 @@ except Exception as e:
|
||||
fi
|
||||
|
||||
# Zusammenfassung der Tests
|
||||
log "📊 System-Test Zusammenfassung:"
|
||||
log " ❌ Fehler: $test_errors"
|
||||
log " ⚠️ Warnungen: $test_warnings"
|
||||
echo ""
|
||||
echo -e "${CYAN}=================================================================${NC}"
|
||||
echo -e "${CYAN} SYSTEM-TEST ERGEBNISSE${NC}"
|
||||
echo -e "${CYAN}=================================================================${NC}"
|
||||
echo ""
|
||||
echo -e "${BLUE}📊 Test-Zusammenfassung:${NC}"
|
||||
echo -e " ❌ Fehler: $test_errors"
|
||||
echo -e " ⚠️ Warnungen: $test_warnings"
|
||||
echo ""
|
||||
|
||||
if [ $test_errors -eq 0 ] && [ $test_warnings -eq 0 ]; then
|
||||
success "✅ Alle System-Tests erfolgreich - System vollständig funktionsfähig"
|
||||
echo -e "${GREEN}✅ Alle System-Tests erfolgreich!${NC}"
|
||||
echo -e "${GREEN} → System vollständig funktionsfähig${NC}"
|
||||
echo ""
|
||||
return 0
|
||||
elif [ $test_errors -eq 0 ]; then
|
||||
warning "⚠️ System-Tests mit $test_warnings Warnungen abgeschlossen - System grundsätzlich funktionsfähig"
|
||||
echo -e "${YELLOW}⚠️ System-Tests mit $test_warnings Warnungen abgeschlossen${NC}"
|
||||
echo -e "${YELLOW} → System grundsätzlich funktionsfähig${NC}"
|
||||
echo ""
|
||||
return 0
|
||||
else
|
||||
error "❌ System-Tests mit $test_errors Fehlern fehlgeschlagen - System möglicherweise nicht funktionsfähig"
|
||||
echo -e "${RED}❌ System-Tests mit $test_errors Fehlern fehlgeschlagen${NC}"
|
||||
echo -e "${RED} → System möglicherweise nicht funktionsfähig${NC}"
|
||||
echo ""
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
@@ -2519,6 +2482,31 @@ install_dependencies_only() {
|
||||
|
||||
# Fehler-Zusammenfassung anzeigen
|
||||
show_error_summary
|
||||
|
||||
# Finale Status-Anzeige
|
||||
echo ""
|
||||
echo -e "${GREEN}=================================================================${NC}"
|
||||
echo -e "${GREEN} INSTALLATION ERFOLGREICH ABGESCHLOSSEN!${NC}"
|
||||
echo -e "${GREEN}=================================================================${NC}"
|
||||
echo ""
|
||||
echo -e "${BLUE}📋 Was wurde installiert:${NC}"
|
||||
echo -e " ✅ System-Updates und Tools"
|
||||
echo -e " ✅ Python 3 und pip"
|
||||
echo -e " ✅ Node.js und npm"
|
||||
echo -e " ✅ SSL-Zertifikate"
|
||||
echo -e " ✅ Anwendung deployed nach: $APP_DIR"
|
||||
echo -e " ✅ Systemd-Services installiert"
|
||||
echo ""
|
||||
echo -e "${YELLOW}🚀 Nächste Schritte:${NC}"
|
||||
echo -e " 1. Testen Sie die Anwendung:"
|
||||
echo -e " ${CYAN}cd $APP_DIR && python3 app.py${NC}"
|
||||
echo -e " 2. Oder prüfen Sie den Service:"
|
||||
echo -e " ${CYAN}sudo systemctl status $HTTPS_SERVICE_NAME${NC}"
|
||||
echo -e " 3. Zugriff über Browser:"
|
||||
echo -e " ${CYAN}$HTTPS_URL${NC}"
|
||||
echo ""
|
||||
echo -e "${GREEN}✅ System bereit für manuelle Tests!${NC}"
|
||||
echo -e "${GREEN}=================================================================${NC}"
|
||||
}
|
||||
|
||||
install_full_production_system() {
|
||||
@@ -2621,6 +2609,29 @@ install_full_production_system() {
|
||||
|
||||
# Fehler-Zusammenfassung anzeigen
|
||||
show_error_summary
|
||||
|
||||
# Finale Status-Anzeige für Vollinstallation
|
||||
echo ""
|
||||
echo -e "${GREEN}=================================================================${NC}"
|
||||
echo -e "${GREEN} VOLLSTÄNDIGE INSTALLATION ERFOLGREICH ABGESCHLOSSEN!${NC}"
|
||||
echo -e "${GREEN}=================================================================${NC}"
|
||||
echo ""
|
||||
echo -e "${BLUE}📋 Was wurde installiert:${NC}"
|
||||
echo -e " ✅ Komplettes Produktionssystem"
|
||||
echo -e " ✅ Kiosk-Modus konfiguriert"
|
||||
echo -e " ✅ Remote-Zugang (SSH & RDP)"
|
||||
echo -e " ✅ Firewall konfiguriert"
|
||||
echo -e " ✅ Automatischer Start beim Boot"
|
||||
echo ""
|
||||
echo -e "${YELLOW}🔐 Zugangsdaten:${NC}"
|
||||
echo -e " SSH: user:raspberry (Port 22)"
|
||||
echo -e " RDP: root:744563017196A (Port 3389)"
|
||||
echo ""
|
||||
echo -e "${RED}⚠️ WICHTIG: Neustart erforderlich!${NC}"
|
||||
echo -e " ${CYAN}sudo reboot${NC}"
|
||||
echo ""
|
||||
echo -e "${GREEN}✅ Produktionssystem vollständig installiert!${NC}"
|
||||
echo -e "${GREEN}=================================================================${NC}"
|
||||
}
|
||||
|
||||
# =========================== RDP & SSH ZUGANG ===========================
|
||||
|
Reference in New Issue
Block a user