diff --git a/backend/CREDENTIALS_INTEGRATION.md b/backend/CREDENTIALS_INTEGRATION.md new file mode 100644 index 000000000..0519ecba6 --- /dev/null +++ b/backend/CREDENTIALS_INTEGRATION.md @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/backend/logs/debug.log b/backend/logs/debug.log index 4adde5b90..4a7ec06c0 100644 --- a/backend/logs/debug.log +++ b/backend/logs/debug.log @@ -2,3 +2,39 @@ MYP Installation DEBUG Log - 2025-06-10 08:58:20 ================================================================= +[2025-06-10 08:58:27] DEBUG von setup.sh:630 +Debian erkannt über /etc/debian_version: 12.11 +--- + +[2025-06-10 08:58:27] DEBUG von setup.sh:698 +Kein Raspberry Pi erkannt. Hardware-Info: +--- + +[2025-06-10 08:58:27] DEBUG von setup.sh:699 + - Device Tree: nicht verfügbar +--- + +[2025-06-10 08:58:27] DEBUG von setup.sh:700 + - CPU Hardware: nicht verfügbar +--- + +[2025-06-10 08:58:27] DEBUG von setup.sh:740 +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-10 08:58:27] DEBUG von setup.sh:796 +DNS-Test Details: Teste DNS für 8.8.8.8: Erfolg mit nslookup. +--- + +[2025-06-10 08:58:28] DEBUG von setup.sh:897 +Externe IP ermittelt über ifconfig.me: 163.116.178.113 +--- + +[2025-06-10 09:06:15] DEBUG von setup.sh:1161 +flask erfolgreich importiert +--- + +[2025-06-10 09:06:15] DEBUG von setup.sh:1161 +requests erfolgreich importiert +--- + diff --git a/backend/logs/install.log b/backend/logs/install.log index 77b129e89..cd8a20c1b 100644 --- a/backend/logs/install.log +++ b/backend/logs/install.log @@ -16,3 +16,182 @@ Log-Verzeichnis: /mnt/logs [2025-06-10 08:58:21] 📊 Bewertung: Produktion=1, Entwicklung=1 [2025-06-10 08:58:21] ⚖️ Unentschieden - Standard: ENTWICKLUNGS-INSTALLATION [2025-06-10 08:58:21] → Verwenden Sie --production für Kiosk-Installation +[2025-06-10 08:58:27] 🔧 Starte ENTWICKLUNGS-INSTALLATION... +[2025-06-10 08:58:27] === AUTOMATISCHE ENTWICKLUNGS-INSTALLATION === +[2025-06-10 08:58:27] === SYSTEM-RESSOURCEN PRÜFUNG === +[FORTSCHRITT] Prüfe RAM... +[FORTSCHRITT] Verfügbarer RAM: 3914MB +[ERFOLG] ✅ Ausreichend RAM verfügbar (3914MB) +[FORTSCHRITT] Prüfe Festplattenplatz... +[FORTSCHRITT] Verfügbarer Festplattenplatz: 13,2GB (13473MB) +[ERFOLG] ✅ Ausreichend Festplattenplatz verfügbar (13,2GB) +[FORTSCHRITT] Prüfe CPU... +[FORTSCHRITT] CPU: 4 Kern(e) - 11th Gen Intel(R) Core(TM) i7-11850H @ 2.50GHz +[ERFOLG] ✅ CPU-Information erfolgreich ermittelt +[2025-06-10 08:58:27] ✅ System-Ressourcen-Prüfung abgeschlossen +[FORTSCHRITT] Prüfe Debian/Raspbian-System... +[DEBUG] Debian erkannt über /etc/debian_version: 12.11 +[2025-06-10 08:58:27] ✅ 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: +[DEBUG] - Device Tree: nicht verfügbar +[DEBUG] - CPU Hardware: nicht verfügbar +[FORTSCHRITT] Prüfe System-Architektur... +[INFO] 📐 System-Architektur: x86_64 +[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 raspberrypi 6.1.0-37-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.140-1 (2025-05-22) x86_64 GNU/Linux +[2025-06-10 08:58:27] ✅ 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.  +[ERFOLG] ✅ Internetverbindung verfügbar +[INFO] 🔍 Erkannt via: DNS-Auflösung (nslookup: 8.8.8.8) +[FORTSCHRITT] Ermittle externe IP-Adresse... +[INFO] 🌐 Externe IP: 163.116.178.113 +[DEBUG] Externe IP ermittelt über ifconfig.me: 163.116.178.113 +[2025-06-10 08:58:28] === KONFIGURIERE HOSTNAME === +[2025-06-10 08:58:28] ✅ Hostname bereits korrekt: 'raspberrypi' +[2025-06-10 08:58:28] ✅ Hostname-Auflösung funktioniert: raspberrypi -> 127.0.1.1 +[2025-06-10 08:58:28] === ANTI-HÄNGE SYSTEM-UPDATE MIT TIMEOUTS === +[FORTSCHRITT] Konfiguriere APT für bessere Zuverlässigkeit (timeout-gesichert)... +[FORTSCHRITT] Validiere APT-Repositories (timeout-gesichert)... +[FORTSCHRITT] Bereinige APT-Lock-Dateien... +[FORTSCHRITT] Aktualisiere Paketlisten (max 60s timeout)... +[ERFOLG] ✅ APT Update erfolgreich +[FORTSCHRITT] Führe System-Upgrade durch (max 120s timeout)... +[ERFOLG] ✅ System Upgrade erfolgreich +[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-10 08:59:11] ✅ Robustes System-Update abgeschlossen +[2025-06-10 08:59:11] === SIMPLE NETZWERK-SICHERHEIT (ANTI-HÄNGE VERSION) === +[INFO] 🚀 Netzwerk-Sicherheit übersprungen für schnellere Installation +[INFO] 📝 Kann später manuell aktiviert werden mit: SKIP_NETWORK_SECURITY=0 +[2025-06-10 08:59:11] === 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-10 09:01:23] ✅ 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-10 09:01:23] ✅ pip konfiguriert für Benutzer: user +[FORTSCHRITT] Aktualisiere pip mit Retry... +[2025-06-10 09:01:27] ✅ pip Version: 25.1.1 +[2025-06-10 09:01:27] ✅ Robuste Python-Umgebung installiert +[2025-06-10 09:01:27] === 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-10 09:05:37] ✅ Node.js via Debian Repository installiert +[FORTSCHRITT] Validiere Node.js Installation... +[2025-06-10 09:05:37] ✅ Node.js Version: v18.19.0 +[2025-06-10 09:05:38] ✅ npm Version: 9.2.0 +[FORTSCHRITT] Optimiere npm-Konfiguration... +[2025-06-10 09:05:39] ✅ Node.js und npm erfolgreich installiert +[2025-06-10 09:05:39] === ANTI-HÄNGE SSL-ZERTIFIKATE KONFIGURATION === +[FORTSCHRITT] Installiere SSL-Grundkomponenten (timeout-gesichert)... +[ERFOLG] ✅ SSL-Grundkomponenten installiert +[FORTSCHRITT] Überspringe CA-Update um Hänger zu vermeiden... +[INFO] 💡 CA-Zertifikate werden beim nächsten Boot automatisch aktualisiert +[FORTSCHRITT] Kopiere Mercedes-Zertifikate (max 30s)... +[INFO] Mercedes-Zertifikate werden beim nächsten Boot aktiv +[FORTSCHRITT] Konfiguriere SSL-Umgebungsvariablen (schnell)... +[2025-06-10 09:05:39] ✅ SSL-Zertifikate anti-hänge konfiguriert +[INFO] 📝 CA-Updates werden automatisch beim nächsten Boot durchgeführt +[2025-06-10 09:05:39] === 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-10 09:06:15] ✅ Python-Pakete Installation abgeschlossen +[FORTSCHRITT] Zeige installierte Python-Pakete... +[2025-06-10 09:06:15] === 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-10 09:06:23] ✅ Python-Pfad konfiguriert: /usr/local/lib/python3.11/dist-packages/myp-app.pth +[FORTSCHRITT] Konfiguriere Umgebungsvariablen... +[FORTSCHRITT] Versuche Bash-Profile zu aktualisieren (optional)... +[2025-06-10 09:06:23] ✅ Root Bash-Profile aktualisiert +[FORTSCHRITT] Validiere Application Deployment... +[ERFOLG] ✅ Application Deployment vollständig validiert +[2025-06-10 09:06:23] ✅ Robustes Anwendungs-Deployment abgeschlossen +[2025-06-10 09:06:23] 📁 App-Verzeichnis: /opt/myp +[2025-06-10 09:06:23] 🐍 Python-Pfad konfiguriert +[2025-06-10 09:06:23] 🔧 Bash-Profile konfiguriert +[2025-06-10 09:06:23] 🛡️ Sichere Berechtigungen gesetzt +[2025-06-10 09:06:23] === NPM-ABHÄNGIGKEITEN INSTALLATION === +[FORTSCHRITT] Installiere npm-Abhängigkeiten... +[2025-06-10 09:06:31] ✅ npm install erfolgreich (Standard) +[FORTSCHRITT] Korrigiere npm-Berechtigungen für kiosk-User... diff --git a/backend/setup.sh b/backend/setup.sh index 14f88cec6..9ddf88583 100755 --- a/backend/setup.sh +++ b/backend/setup.sh @@ -29,6 +29,19 @@ AUTO_INSTALL_MODE="" FORCE_PRODUCTION=false FORCE_DEVELOPMENT=false +# =========================== CREDENTIALS KONFIGURATION =========================== +# Zentrale Credentials-Verwaltung basierend auf CREDENTIALS.md +readonly MYP_SECRET_KEY="7445630171969DFAC92C53CEC92E67A9CB2E00B3CB2F" +readonly MYP_MAIN_PASSWORD="744563017196A" +readonly MYP_SSH_PASSWORD="raspberry" +readonly MYP_ADMIN_EMAIL="admin@mercedes-benz.com" +readonly MYP_TAPO_EMAIL="till.tomczak@mercedes-benz.com" +readonly MYP_TAPO_PASSWORD="744563017196A" +readonly MYP_ROUTER_USER="admin" +readonly MYP_ROUTER_PASSWORD="vT6Vsd^p" +readonly MYP_GITHUB_CLIENT_ID="7c5d8bef1a5519ec1fdc" +readonly MYP_GITHUB_CLIENT_SECRET="5f1e586204358fbd53cf5fb7d418b3f06ccab8fd" + # Log-Dateien - verwende relatives logs-Verzeichnis mkdir -p "$CURRENT_DIR/logs" 2>/dev/null || true INSTALL_LOG="$CURRENT_DIR/logs/install.log" @@ -204,6 +217,60 @@ show_help() { echo -e "${CYAN}=================================================================${NC}" } +# =========================== CREDENTIALS VALIDIERUNG =========================== +validate_credentials() { + log "=== VALIDIERE CREDENTIALS KONFIGURATION ===" + + local validation_errors=0 + + # Prüfe ob alle wichtigen Credentials gesetzt sind + if [ -z "$MYP_SECRET_KEY" ] || [ ${#MYP_SECRET_KEY} -lt 32 ]; then + error "MYP_SECRET_KEY ist nicht gesetzt oder zu kurz" + ((validation_errors++)) + fi + + if [ -z "$MYP_MAIN_PASSWORD" ] || [ ${#MYP_MAIN_PASSWORD} -lt 8 ]; then + error "MYP_MAIN_PASSWORD ist nicht gesetzt oder zu kurz" + ((validation_errors++)) + fi + + if [ -z "$MYP_SSH_PASSWORD" ] || [ ${#MYP_SSH_PASSWORD} -lt 4 ]; then + error "MYP_SSH_PASSWORD ist nicht gesetzt oder zu kurz" + ((validation_errors++)) + fi + + if [ -z "$MYP_ADMIN_EMAIL" ] || [[ ! "$MYP_ADMIN_EMAIL" =~ @.*\. ]]; then + error "MYP_ADMIN_EMAIL ist nicht gesetzt oder ungültig" + ((validation_errors++)) + fi + + if [ -z "$MYP_TAPO_EMAIL" ] || [[ ! "$MYP_TAPO_EMAIL" =~ @.*\. ]]; then + error "MYP_TAPO_EMAIL ist nicht gesetzt oder ungültig" + ((validation_errors++)) + fi + + if [ -z "$MYP_GITHUB_CLIENT_ID" ] || [ ${#MYP_GITHUB_CLIENT_ID} -lt 16 ]; then + error "MYP_GITHUB_CLIENT_ID ist nicht gesetzt oder zu kurz" + ((validation_errors++)) + fi + + if [ -z "$MYP_GITHUB_CLIENT_SECRET" ] || [ ${#MYP_GITHUB_CLIENT_SECRET} -lt 32 ]; then + error "MYP_GITHUB_CLIENT_SECRET ist nicht gesetzt oder zu kurz" + ((validation_errors++)) + fi + + if [ $validation_errors -eq 0 ]; then + success "✅ Alle Credentials korrekt konfiguriert" + log " 🔑 SECRET_KEY: ${MYP_SECRET_KEY:0:8}... (${#MYP_SECRET_KEY} Zeichen)" + log " 🔒 MAIN_PASSWORD: ${MYP_MAIN_PASSWORD:0:4}... (${#MYP_MAIN_PASSWORD} Zeichen)" + log " 📧 ADMIN_EMAIL: $MYP_ADMIN_EMAIL" + log " 📧 TAPO_EMAIL: $MYP_TAPO_EMAIL" + log " 🐙 GITHUB_CLIENT_ID: ${MYP_GITHUB_CLIENT_ID:0:8}..." + else + error "❌ $validation_errors Credentials-Fehler gefunden - Installation abgebrochen" + fi +} + # =========================== LOG-DATEIEN INITIALISIERUNG =========================== # Log-Dateien - verwende relatives logs-Verzeichnis (falls noch nicht definiert) if [ -z "$INSTALL_LOG" ]; then @@ -3270,6 +3337,142 @@ cleanup_old_files() { log "✅ Aufräumen abgeschlossen" } +# =========================== CREDENTIALS DEPLOYMENT =========================== +deploy_credentials() { + log "=== DEPLOYE CREDENTIALS KONFIGURATION ===" + + # Erstelle .env-Datei für die Anwendung + progress "Erstelle .env-Datei mit Credentials..." + + local env_file="$APP_DIR/.env" + + cat > "$env_file" << EOF +# MYP Druckerverwaltung - Automatisch generierte Credentials +# Generiert am: $(date '+%Y-%m-%d %H:%M:%S') +# Setup-Version: $APP_VERSION + +# Backend-Konfiguration +SECRET_KEY=$MYP_SECRET_KEY +KIOSK_DEACTIVATION_PASSWORD=$MYP_MAIN_PASSWORD + +# Admin-Zugangsdaten +ADMIN_EMAIL=$MYP_ADMIN_EMAIL +ADMIN_PASSWORD=$MYP_MAIN_PASSWORD + +# TP-Link Tapo Konfiguration +TAPO_USERNAME=$MYP_TAPO_EMAIL +TAPO_PASSWORD=$MYP_TAPO_PASSWORD + +# GitHub OAuth +GITHUB_CLIENT_ID=$MYP_GITHUB_CLIENT_ID +GITHUB_CLIENT_SECRET=$MYP_GITHUB_CLIENT_SECRET + +# System-Zugangsdaten (nur für Dokumentation) +SSH_USER=user +SSH_PASSWORD=$MYP_SSH_PASSWORD +RDP_USER=root +RDP_PASSWORD=$MYP_MAIN_PASSWORD + +# Router-Zugangsdaten (nur für Dokumentation) +ROUTER_USER=$MYP_ROUTER_USER +ROUTER_PASSWORD=$MYP_ROUTER_PASSWORD + +# SSL-Konfiguration +SSL_CERT_PATH=instance/ssl/myp.crt +SSL_KEY_PATH=instance/ssl/myp.key + +# Produktions-Konfiguration +FLASK_ENV=production +DEBUG=False +TESTING=False +EOF + + # Sichere Berechtigungen setzen + chmod 600 "$env_file" || warning "Konnte Berechtigungen für .env-Datei nicht setzen" + chown root:root "$env_file" 2>/dev/null || warning "Konnte Besitzer für .env-Datei nicht setzen" + + # Backup der CREDENTIALS.md erstellen falls vorhanden + if [ -f "$CURRENT_DIR/../docs/CREDENTIALS.md" ]; then + progress "Erstelle Backup der CREDENTIALS.md..." + cp "$CURRENT_DIR/../docs/CREDENTIALS.md" "$APP_DIR/CREDENTIALS_backup.md" 2>/dev/null || true + fi + + # Erstelle lokale Credentials-Dokumentation + progress "Erstelle lokale Credentials-Dokumentation..." + + cat > "$APP_DIR/CREDENTIALS_LOCAL.md" << EOF +# MYP Druckerverwaltung - Lokale Credentials + +**Automatisch generiert am:** $(date '+%Y-%m-%d %H:%M:%S') +**Setup-Version:** $APP_VERSION +**Hostname:** $(hostname) + +## 🔐 System-Zugangsdaten + +### SSH-Zugang +- **Benutzer:** user +- **Passwort:** $MYP_SSH_PASSWORD +- **Port:** 22 +- **Verbindung:** \`ssh user@$(hostname)\` + +### RDP-Zugang +- **Benutzer:** root +- **Passwort:** $MYP_MAIN_PASSWORD +- **Port:** 3389 +- **Verbindung:** RDP-Client zu \`$(hostname):3389\` + +## 🌐 Anwendungs-Credentials + +### Backend-Konfiguration +- **SECRET_KEY:** \`${MYP_SECRET_KEY:0:8}...\` (${#MYP_SECRET_KEY} Zeichen) +- **Kiosk-Deaktivierung:** $MYP_MAIN_PASSWORD + +### Admin-Zugang +- **E-Mail:** $MYP_ADMIN_EMAIL +- **Passwort:** $MYP_MAIN_PASSWORD + +### TP-Link Tapo Steckdosen +- **E-Mail:** $MYP_TAPO_EMAIL +- **Passwort:** $MYP_TAPO_PASSWORD + +### GitHub OAuth +- **Client ID:** ${MYP_GITHUB_CLIENT_ID:0:8}... +- **Client Secret:** ${MYP_GITHUB_CLIENT_SECRET:0:8}... + +## 🔧 Netzwerk-Konfiguration + +### Router-Zugang +- **Benutzer:** $MYP_ROUTER_USER +- **Passwort:** $MYP_ROUTER_PASSWORD + +## 📁 Dateien + +- **Anwendung:** $APP_DIR +- **SSL-Zertifikat:** $APP_DIR/instance/ssl/myp.crt +- **SSL-Schlüssel:** $APP_DIR/instance/ssl/myp.key +- **Umgebungsvariablen:** $APP_DIR/.env + +## ⚠️ Sicherheitshinweise + +1. Diese Datei enthält sensible Informationen +2. Zugriff nur für autorisierte Personen +3. Regelmäßige Passwort-Updates empfohlen +4. Backup der Credentials an sicherem Ort + +--- +**Erstellt durch:** MYP Setup-Skript v$APP_VERSION +EOF + + # Sichere Berechtigungen für Dokumentation + chmod 600 "$APP_DIR/CREDENTIALS_LOCAL.md" || warning "Konnte Berechtigungen für Credentials-Dokumentation nicht setzen" + chown root:root "$APP_DIR/CREDENTIALS_LOCAL.md" 2>/dev/null || warning "Konnte Besitzer für Credentials-Dokumentation nicht setzen" + + success "✅ Credentials erfolgreich deployed:" + log " 📄 .env-Datei: $env_file" + log " 📋 Lokale Dokumentation: $APP_DIR/CREDENTIALS_LOCAL.md" + log " 🔒 Sichere Berechtigungen gesetzt (600, root:root)" +} + # =========================== AUTOMATISCHE SYSTEM-ERKENNUNG =========================== # Menü-System entfernt - vollautomatische Installation basierend auf System-Erkennung @@ -3292,7 +3495,7 @@ install_remote_access() { if ! id "user" &>/dev/null; then progress "Erstelle SSH-Benutzer: user" useradd -m -s /bin/bash user || error "Kann SSH-Benutzer nicht erstellen" - echo "user:raspberry" | chpasswd || error "Kann Passwort für SSH-Benutzer nicht setzen" + echo "user:$MYP_SSH_PASSWORD" | chpasswd || error "Kann Passwort für SSH-Benutzer nicht setzen" usermod -aG sudo user 2>/dev/null || true # pip-Konfiguration für SSH-Benutzer @@ -3314,10 +3517,10 @@ trusted-host = pypi.org EOF chown "user:user" "/home/user/.pip/pip.conf" 2>/dev/null || true - log "✅ SSH-Benutzer 'user' erstellt mit Passwort 'raspberry'" + log "✅ SSH-Benutzer 'user' erstellt mit Passwort '$MYP_SSH_PASSWORD'" else info "SSH-Benutzer 'user' existiert bereits" - echo "user:raspberry" | chpasswd || warning "Konnte Passwort für SSH-Benutzer nicht aktualisieren" + echo "user:$MYP_SSH_PASSWORD" | chpasswd || warning "Konnte Passwort für SSH-Benutzer nicht aktualisieren" fi # RDP-Server (xrdp) installieren - vereinfachter Ansatz @@ -3451,7 +3654,7 @@ EOF # Root-Passwort setzen progress "Setze Root-Passwort für RDP..." - echo "root:744563017196A" | chpasswd || error "Kann Root-Passwort nicht setzen" + echo "root:$MYP_MAIN_PASSWORD" | chpasswd || error "Kann Root-Passwort nicht setzen" # Log-Verzeichnisse erstellen mit korrekten Berechtigungen progress "Erstelle Log-Verzeichnisse..." @@ -3502,12 +3705,12 @@ EOF # Finaler Status-Check if systemctl is-active --quiet xrdp && systemctl is-active --quiet xrdp-sesman; then log "✅ Remote-Zugang vollständig konfiguriert:" - log " 📡 SSH: user:raspberry (Port 22)" - log " 🖥️ RDP: root:744563017196A (Port 3389)" - log " 🖥️ RDP: user:raspberry (Port 3389)" + log " 📡 SSH: user:$MYP_SSH_PASSWORD (Port 22)" + log " 🖥️ RDP: root:$MYP_MAIN_PASSWORD (Port 3389)" + log " 🖥️ RDP: user:$MYP_SSH_PASSWORD (Port 3389)" elif systemctl is-active --quiet ssh; then log "✅ SSH-Zugang konfiguriert:" - log " 📡 SSH: user:raspberry (Port 22)" + log " 📡 SSH: user:$MYP_SSH_PASSWORD (Port 22)" warning "⚠️ RDP-Installation unvollständig" info "Manuelle Überprüfung erforderlich:" info " systemctl status xrdp" @@ -3750,7 +3953,7 @@ test_remote_access() { info "Zugang-URLs:" info " SSH: ssh user@$ip_address" if [ "$xrdp_status" = "✅" ]; then - info " RDP: $ip_address:3389 (root:744563017196A oder user:raspberry)" + info " RDP: $ip_address:3389 (root:$MYP_MAIN_PASSWORD oder user:$MYP_SSH_PASSWORD)" fi else warning "⚠️ Keine Netzwerk-IP ermittelt" @@ -4068,6 +4271,9 @@ main() { # Grundlegende Validierung check_root + # Credentials validieren + validate_credentials + # Automatische Modus-Erkennung detect_installation_mode "$@" @@ -4157,6 +4363,9 @@ install_dependencies_only_auto() { deploy_application install_npm_dependencies + # Credentials deployen + deploy_credentials + # Berechtigungen für kiosk-User korrigieren fix_project_permissions create_permission_fix_script @@ -4208,6 +4417,9 @@ install_full_production_system_auto() { deploy_application install_npm_dependencies + # Credentials deployen + deploy_credentials + # Berechtigungen für kiosk-User korrigieren fix_project_permissions create_permission_fix_script @@ -4275,8 +4487,8 @@ show_final_summary() { echo "" echo -e "${BLUE}📋 Was wurde installiert:${NC}" echo -e " ✅ Vollständige Kiosk-Installation" - echo -e " ✅ Remote-Zugang (RDP: root:744563017196A)" - echo -e " ✅ SSH-Zugang (user: raspberry)" + echo -e " ✅ Remote-Zugang (RDP: root:$MYP_MAIN_PASSWORD)" + echo -e " ✅ SSH-Zugang (user: $MYP_SSH_PASSWORD)" echo -e " ✅ Automatischer Kiosk-Start beim Boot" echo -e " ✅ Firewall und Sicherheitskonfiguration" echo -e " ✅ Performance-Optimierungen"