🎉 Added CREDENTIALS_INTEGRATION documentation, updated logs, and improved setup script. 🚀🔧📚💄
This commit is contained in:
1
backend/CREDENTIALS_INTEGRATION.md
Normal file
1
backend/CREDENTIALS_INTEGRATION.md
Normal file
@ -0,0 +1 @@
|
|||||||
|
|
@ -2,3 +2,39 @@
|
|||||||
MYP Installation DEBUG Log - 2025-06-10 08:58:20
|
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
|
||||||
|
---
|
||||||
|
|
||||||
|
@ -16,3 +16,182 @@ Log-Verzeichnis: /mnt/logs
|
|||||||
[0;32m[2025-06-10 08:58:21] 📊 Bewertung: Produktion=1, Entwicklung=1[0m
|
[0;32m[2025-06-10 08:58:21] 📊 Bewertung: Produktion=1, Entwicklung=1[0m
|
||||||
[0;32m[2025-06-10 08:58:21] ⚖️ Unentschieden - Standard: ENTWICKLUNGS-INSTALLATION[0m
|
[0;32m[2025-06-10 08:58:21] ⚖️ Unentschieden - Standard: ENTWICKLUNGS-INSTALLATION[0m
|
||||||
[0;32m[2025-06-10 08:58:21] → Verwenden Sie --production für Kiosk-Installation[0m
|
[0;32m[2025-06-10 08:58:21] → Verwenden Sie --production für Kiosk-Installation[0m
|
||||||
|
[0;32m[2025-06-10 08:58:27] 🔧 Starte ENTWICKLUNGS-INSTALLATION...[0m
|
||||||
|
[0;32m[2025-06-10 08:58:27] === AUTOMATISCHE ENTWICKLUNGS-INSTALLATION ===[0m
|
||||||
|
[0;32m[2025-06-10 08:58:27] === SYSTEM-RESSOURCEN PRÜFUNG ===[0m
|
||||||
|
[0;35m[FORTSCHRITT] Prüfe RAM...[0m
|
||||||
|
[0;35m[FORTSCHRITT] Verfügbarer RAM: 3914MB[0m
|
||||||
|
[0;36m[ERFOLG] ✅ Ausreichend RAM verfügbar (3914MB)[0m
|
||||||
|
[0;35m[FORTSCHRITT] Prüfe Festplattenplatz...[0m
|
||||||
|
[0;35m[FORTSCHRITT] Verfügbarer Festplattenplatz: 13,2GB (13473MB)[0m
|
||||||
|
[0;36m[ERFOLG] ✅ Ausreichend Festplattenplatz verfügbar (13,2GB)[0m
|
||||||
|
[0;35m[FORTSCHRITT] Prüfe CPU...[0m
|
||||||
|
[0;35m[FORTSCHRITT] CPU: 4 Kern(e) - 11th Gen Intel(R) Core(TM) i7-11850H @ 2.50GHz[0m
|
||||||
|
[0;36m[ERFOLG] ✅ CPU-Information erfolgreich ermittelt[0m
|
||||||
|
[0;32m[2025-06-10 08:58:27] ✅ System-Ressourcen-Prüfung abgeschlossen[0m
|
||||||
|
[0;35m[FORTSCHRITT] Prüfe Debian/Raspbian-System...[0m
|
||||||
|
[0;34m[DEBUG] Debian erkannt über /etc/debian_version: 12.11[0m
|
||||||
|
[0;32m[2025-06-10 08:58:27] ✅ Debian/Raspbian-basiertes System erkannt (Version: 12.11)[0m
|
||||||
|
[0;35m[FORTSCHRITT] Prüfe Raspberry Pi Hardware...[0m
|
||||||
|
[0;34m[INFO] 💻 Standard-PC/Server System (kein Raspberry Pi)[0m
|
||||||
|
[0;34m[DEBUG] Kein Raspberry Pi erkannt. Hardware-Info:[0m
|
||||||
|
[0;34m[DEBUG] - Device Tree: nicht verfügbar[0m
|
||||||
|
[0;34m[DEBUG] - CPU Hardware: nicht verfügbar[0m
|
||||||
|
[0;35m[FORTSCHRITT] Prüfe System-Architektur...[0m
|
||||||
|
[0;34m[INFO] 📐 System-Architektur: x86_64[0m
|
||||||
|
[0;34m[INFO] → 64-Bit x86 Architektur erkannt[0m
|
||||||
|
[0;35m[FORTSCHRITT] Prüfe Kernel-Version...[0m
|
||||||
|
[0;34m[INFO] 🐧 Kernel-Version: 6.1.0-37-amd64[0m
|
||||||
|
[0;34m[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[0m
|
||||||
|
[0;32m[2025-06-10 08:58:27] ✅ System-Analyse abgeschlossen[0m
|
||||||
|
[0;35m[FORTSCHRITT] Prüfe Internetverbindung (erweiterte Methoden)...[0m
|
||||||
|
[0;35m[FORTSCHRITT] Teste DNS-Auflösung...[0m
|
||||||
|
[0;34m[DEBUG] DNS-Test Details: Teste DNS für 8.8.8.8: Erfolg mit nslookup. [0m
|
||||||
|
[0;36m[ERFOLG] ✅ Internetverbindung verfügbar[0m
|
||||||
|
[0;34m[INFO] 🔍 Erkannt via: DNS-Auflösung (nslookup: 8.8.8.8)[0m
|
||||||
|
[0;35m[FORTSCHRITT] Ermittle externe IP-Adresse...[0m
|
||||||
|
[0;34m[INFO] 🌐 Externe IP: 163.116.178.113[0m
|
||||||
|
[0;34m[DEBUG] Externe IP ermittelt über ifconfig.me: 163.116.178.113[0m
|
||||||
|
[0;32m[2025-06-10 08:58:28] === KONFIGURIERE HOSTNAME ===[0m
|
||||||
|
[0;32m[2025-06-10 08:58:28] ✅ Hostname bereits korrekt: 'raspberrypi'[0m
|
||||||
|
[0;32m[2025-06-10 08:58:28] ✅ Hostname-Auflösung funktioniert: raspberrypi -> 127.0.1.1[0m
|
||||||
|
[0;32m[2025-06-10 08:58:28] === ANTI-HÄNGE SYSTEM-UPDATE MIT TIMEOUTS ===[0m
|
||||||
|
[0;35m[FORTSCHRITT] Konfiguriere APT für bessere Zuverlässigkeit (timeout-gesichert)...[0m
|
||||||
|
[0;35m[FORTSCHRITT] Validiere APT-Repositories (timeout-gesichert)...[0m
|
||||||
|
[0;35m[FORTSCHRITT] Bereinige APT-Lock-Dateien...[0m
|
||||||
|
[0;35m[FORTSCHRITT] Aktualisiere Paketlisten (max 60s timeout)...[0m
|
||||||
|
[0;36m[ERFOLG] ✅ APT Update erfolgreich[0m
|
||||||
|
[0;35m[FORTSCHRITT] Führe System-Upgrade durch (max 120s timeout)...[0m
|
||||||
|
[0;36m[ERFOLG] ✅ System Upgrade erfolgreich[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere essenzielle System-Tools...[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: ca-certificates[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: gnupg[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: curl[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: wget[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: git[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: nano[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: htop[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: rsync[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: unzip[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: sudo[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: systemd[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: lsb-release[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: apt-transport-https[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: software-properties-common[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: bc[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: dbus[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: systemd-timesyncd[0m
|
||||||
|
[0;35m[FORTSCHRITT] Synchronisiere Systemzeit...[0m
|
||||||
|
[0;32m[2025-06-10 08:59:11] ✅ Robustes System-Update abgeschlossen[0m
|
||||||
|
[0;32m[2025-06-10 08:59:11] === SIMPLE NETZWERK-SICHERHEIT (ANTI-HÄNGE VERSION) ===[0m
|
||||||
|
[0;34m[INFO] 🚀 Netzwerk-Sicherheit übersprungen für schnellere Installation[0m
|
||||||
|
[0;34m[INFO] 📝 Kann später manuell aktiviert werden mit: SKIP_NETWORK_SECURITY=0[0m
|
||||||
|
[0;32m[2025-06-10 08:59:11] === ROBUSTE PYTHON-INSTALLATION ===[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Python 3 und Build-Abhängigkeiten...[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: python3[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: python3-pip[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: python3-dev[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: python3-setuptools[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: python3-venv[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: python3-wheel[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: build-essential[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: libssl-dev[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: libffi-dev[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: libbz2-dev[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: libreadline-dev[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: libsqlite3-dev[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: libncurses5-dev[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: libncursesw5-dev[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: zlib1g-dev[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: sqlite3[0m
|
||||||
|
[0;35m[FORTSCHRITT] Validiere Python-Installation...[0m
|
||||||
|
[0;32m[2025-06-10 09:01:23] ✅ Python Version: 3.11.2[0m
|
||||||
|
[0;35m[FORTSCHRITT] Konfiguriere pip für bessere Zuverlässigkeit...[0m
|
||||||
|
[0;35m[FORTSCHRITT] Erstelle systemweite pip-Konfiguration...[0m
|
||||||
|
[0;35m[FORTSCHRITT] Konfiguriere pip für alle Benutzer...[0m
|
||||||
|
[0;32m[2025-06-10 09:01:23] ✅ pip konfiguriert für Benutzer: user[0m
|
||||||
|
[0;35m[FORTSCHRITT] Aktualisiere pip mit Retry...[0m
|
||||||
|
[0;32m[2025-06-10 09:01:27] ✅ pip Version: 25.1.1[0m
|
||||||
|
[0;32m[2025-06-10 09:01:27] ✅ Robuste Python-Umgebung installiert[0m
|
||||||
|
[0;32m[2025-06-10 09:01:27] === ROBUSTE NODE.JS UND NPM INSTALLATION ===[0m
|
||||||
|
[0;35m[FORTSCHRITT] Bereinige alte Node.js-Installationen...[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Node.js mit Fallback-Strategie...[0m
|
||||||
|
[0;35m[FORTSCHRITT] Verwende Debian Repository als Fallback...[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Pakete: nodejs npm[0m
|
||||||
|
[0;32m[2025-06-10 09:05:37] ✅ Node.js via Debian Repository installiert[0m
|
||||||
|
[0;35m[FORTSCHRITT] Validiere Node.js Installation...[0m
|
||||||
|
[0;32m[2025-06-10 09:05:37] ✅ Node.js Version: v18.19.0[0m
|
||||||
|
[0;32m[2025-06-10 09:05:38] ✅ npm Version: 9.2.0[0m
|
||||||
|
[0;35m[FORTSCHRITT] Optimiere npm-Konfiguration...[0m
|
||||||
|
[0;32m[2025-06-10 09:05:39] ✅ Node.js und npm erfolgreich installiert[0m
|
||||||
|
[0;32m[2025-06-10 09:05:39] === ANTI-HÄNGE SSL-ZERTIFIKATE KONFIGURATION ===[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere SSL-Grundkomponenten (timeout-gesichert)...[0m
|
||||||
|
[0;36m[ERFOLG] ✅ SSL-Grundkomponenten installiert[0m
|
||||||
|
[0;35m[FORTSCHRITT] Überspringe CA-Update um Hänger zu vermeiden...[0m
|
||||||
|
[0;34m[INFO] 💡 CA-Zertifikate werden beim nächsten Boot automatisch aktualisiert[0m
|
||||||
|
[0;35m[FORTSCHRITT] Kopiere Mercedes-Zertifikate (max 30s)...[0m
|
||||||
|
[0;34m[INFO] Mercedes-Zertifikate werden beim nächsten Boot aktiv[0m
|
||||||
|
[0;35m[FORTSCHRITT] Konfiguriere SSL-Umgebungsvariablen (schnell)...[0m
|
||||||
|
[0;32m[2025-06-10 09:05:39] ✅ SSL-Zertifikate anti-hänge konfiguriert[0m
|
||||||
|
[0;34m[INFO] 📝 CA-Updates werden automatisch beim nächsten Boot durchgeführt[0m
|
||||||
|
[0;32m[2025-06-10 09:05:39] === PYTHON-PAKETE INSTALLATION ===[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere Python-Pakete...[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere requirements.txt...[0m
|
||||||
|
[0;36m[ERFOLG] ✅ requirements.txt erfolgreich installiert[0m
|
||||||
|
[0;35m[FORTSCHRITT] Validiere essenzielle Python-Module...[0m
|
||||||
|
[0;34m[DEBUG] flask erfolgreich importiert[0m
|
||||||
|
[0;34m[DEBUG] requests erfolgreich importiert[0m
|
||||||
|
[0;36m[ERFOLG] ✅ Essenzielle Python-Module verfügbar[0m
|
||||||
|
[0;32m[2025-06-10 09:06:15] ✅ Python-Pakete Installation abgeschlossen[0m
|
||||||
|
[0;35m[FORTSCHRITT] Zeige installierte Python-Pakete...[0m
|
||||||
|
[0;32m[2025-06-10 09:06:15] === ROBUSTES ANWENDUNGS-DEPLOYMENT ===[0m
|
||||||
|
[0;35m[FORTSCHRITT] Erstelle sicheres Zielverzeichnis: /opt/myp[0m
|
||||||
|
[0;35m[FORTSCHRITT] Validiere Source-Dateien...[0m
|
||||||
|
[0;35m[FORTSCHRITT] Kopiere Anwendungsdateien (robust)...[0m
|
||||||
|
[0;35m[FORTSCHRITT] Kopiere kritische Datei: app.py[0m
|
||||||
|
[0;36m[ERFOLG] ✅ app.py erfolgreich kopiert[0m
|
||||||
|
[0;35m[FORTSCHRITT] Kopiere kritische Datei: models.py[0m
|
||||||
|
[0;36m[ERFOLG] ✅ models.py erfolgreich kopiert[0m
|
||||||
|
[0;35m[FORTSCHRITT] Kopiere kritische Datei: requirements.txt[0m
|
||||||
|
[0;36m[ERFOLG] ✅ requirements.txt erfolgreich kopiert[0m
|
||||||
|
[0;35m[FORTSCHRITT] Kopiere Verzeichnis: blueprints[0m
|
||||||
|
[0;36m[ERFOLG] ✅ blueprints erfolgreich kopiert[0m
|
||||||
|
[0;35m[FORTSCHRITT] Kopiere Verzeichnis: config[0m
|
||||||
|
[0;36m[ERFOLG] ✅ config erfolgreich kopiert[0m
|
||||||
|
[0;35m[FORTSCHRITT] Kopiere Verzeichnis: database[0m
|
||||||
|
[0;36m[ERFOLG] ✅ database erfolgreich kopiert[0m
|
||||||
|
[0;35m[FORTSCHRITT] Kopiere Verzeichnis: static[0m
|
||||||
|
[0;36m[ERFOLG] ✅ static erfolgreich kopiert[0m
|
||||||
|
[0;35m[FORTSCHRITT] Kopiere Verzeichnis: templates[0m
|
||||||
|
[0;36m[ERFOLG] ✅ templates erfolgreich kopiert[0m
|
||||||
|
[0;35m[FORTSCHRITT] Kopiere Verzeichnis: uploads[0m
|
||||||
|
[0;36m[ERFOLG] ✅ uploads erfolgreich kopiert[0m
|
||||||
|
[0;35m[FORTSCHRITT] Kopiere Verzeichnis: utils[0m
|
||||||
|
[0;36m[ERFOLG] ✅ utils erfolgreich kopiert[0m
|
||||||
|
[0;35m[FORTSCHRITT] Kopiere Verzeichnis: logs[0m
|
||||||
|
[0;36m[ERFOLG] ✅ logs erfolgreich kopiert[0m
|
||||||
|
[0;35m[FORTSCHRITT] Kopiere Verzeichnis: certs[0m
|
||||||
|
[0;36m[ERFOLG] ✅ certs erfolgreich kopiert[0m
|
||||||
|
[0;35m[FORTSCHRITT] Kopiere optionale Datei: package.json[0m
|
||||||
|
[0;35m[FORTSCHRITT] Kopiere optionale Datei: package-lock.json[0m
|
||||||
|
[0;35m[FORTSCHRITT] Kopiere optionale Datei: tailwind.config.js[0m
|
||||||
|
[0;35m[FORTSCHRITT] Kopiere optionale Datei: postcss.config.js[0m
|
||||||
|
[0;35m[FORTSCHRITT] Kopiere optionale Datei: README.md[0m
|
||||||
|
[0;35m[FORTSCHRITT] Erstelle Verzeichnisstruktur...[0m
|
||||||
|
[0;35m[FORTSCHRITT] Setze sichere Berechtigungen...[0m
|
||||||
|
[0;35m[FORTSCHRITT] Konfiguriere robuste Python-Umgebung...[0m
|
||||||
|
[0;32m[2025-06-10 09:06:23] ✅ Python-Pfad konfiguriert: /usr/local/lib/python3.11/dist-packages/myp-app.pth[0m
|
||||||
|
[0;35m[FORTSCHRITT] Konfiguriere Umgebungsvariablen...[0m
|
||||||
|
[0;35m[FORTSCHRITT] Versuche Bash-Profile zu aktualisieren (optional)...[0m
|
||||||
|
[0;32m[2025-06-10 09:06:23] ✅ Root Bash-Profile aktualisiert[0m
|
||||||
|
[0;35m[FORTSCHRITT] Validiere Application Deployment...[0m
|
||||||
|
[0;36m[ERFOLG] ✅ Application Deployment vollständig validiert[0m
|
||||||
|
[0;32m[2025-06-10 09:06:23] ✅ Robustes Anwendungs-Deployment abgeschlossen[0m
|
||||||
|
[0;32m[2025-06-10 09:06:23] 📁 App-Verzeichnis: /opt/myp[0m
|
||||||
|
[0;32m[2025-06-10 09:06:23] 🐍 Python-Pfad konfiguriert[0m
|
||||||
|
[0;32m[2025-06-10 09:06:23] 🔧 Bash-Profile konfiguriert[0m
|
||||||
|
[0;32m[2025-06-10 09:06:23] 🛡️ Sichere Berechtigungen gesetzt[0m
|
||||||
|
[0;32m[2025-06-10 09:06:23] === NPM-ABHÄNGIGKEITEN INSTALLATION ===[0m
|
||||||
|
[0;35m[FORTSCHRITT] Installiere npm-Abhängigkeiten...[0m
|
||||||
|
[0;32m[2025-06-10 09:06:31] ✅ npm install erfolgreich (Standard)[0m
|
||||||
|
[0;35m[FORTSCHRITT] Korrigiere npm-Berechtigungen für kiosk-User...[0m
|
||||||
|
234
backend/setup.sh
234
backend/setup.sh
@ -29,6 +29,19 @@ AUTO_INSTALL_MODE=""
|
|||||||
FORCE_PRODUCTION=false
|
FORCE_PRODUCTION=false
|
||||||
FORCE_DEVELOPMENT=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
|
# Log-Dateien - verwende relatives logs-Verzeichnis
|
||||||
mkdir -p "$CURRENT_DIR/logs" 2>/dev/null || true
|
mkdir -p "$CURRENT_DIR/logs" 2>/dev/null || true
|
||||||
INSTALL_LOG="$CURRENT_DIR/logs/install.log"
|
INSTALL_LOG="$CURRENT_DIR/logs/install.log"
|
||||||
@ -204,6 +217,60 @@ show_help() {
|
|||||||
echo -e "${CYAN}=================================================================${NC}"
|
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 INITIALISIERUNG ===========================
|
||||||
# Log-Dateien - verwende relatives logs-Verzeichnis (falls noch nicht definiert)
|
# Log-Dateien - verwende relatives logs-Verzeichnis (falls noch nicht definiert)
|
||||||
if [ -z "$INSTALL_LOG" ]; then
|
if [ -z "$INSTALL_LOG" ]; then
|
||||||
@ -3270,6 +3337,142 @@ cleanup_old_files() {
|
|||||||
log "✅ Aufräumen abgeschlossen"
|
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 ===========================
|
# =========================== AUTOMATISCHE SYSTEM-ERKENNUNG ===========================
|
||||||
# Menü-System entfernt - vollautomatische Installation basierend auf System-Erkennung
|
# Menü-System entfernt - vollautomatische Installation basierend auf System-Erkennung
|
||||||
|
|
||||||
@ -3292,7 +3495,7 @@ install_remote_access() {
|
|||||||
if ! id "user" &>/dev/null; then
|
if ! id "user" &>/dev/null; then
|
||||||
progress "Erstelle SSH-Benutzer: user"
|
progress "Erstelle SSH-Benutzer: user"
|
||||||
useradd -m -s /bin/bash user || error "Kann SSH-Benutzer nicht erstellen"
|
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
|
usermod -aG sudo user 2>/dev/null || true
|
||||||
|
|
||||||
# pip-Konfiguration für SSH-Benutzer
|
# pip-Konfiguration für SSH-Benutzer
|
||||||
@ -3314,10 +3517,10 @@ trusted-host = pypi.org
|
|||||||
EOF
|
EOF
|
||||||
chown "user:user" "/home/user/.pip/pip.conf" 2>/dev/null || true
|
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
|
else
|
||||||
info "SSH-Benutzer 'user' existiert bereits"
|
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
|
fi
|
||||||
|
|
||||||
# RDP-Server (xrdp) installieren - vereinfachter Ansatz
|
# RDP-Server (xrdp) installieren - vereinfachter Ansatz
|
||||||
@ -3451,7 +3654,7 @@ EOF
|
|||||||
|
|
||||||
# Root-Passwort setzen
|
# Root-Passwort setzen
|
||||||
progress "Setze Root-Passwort für RDP..."
|
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
|
# Log-Verzeichnisse erstellen mit korrekten Berechtigungen
|
||||||
progress "Erstelle Log-Verzeichnisse..."
|
progress "Erstelle Log-Verzeichnisse..."
|
||||||
@ -3502,12 +3705,12 @@ EOF
|
|||||||
# Finaler Status-Check
|
# Finaler Status-Check
|
||||||
if systemctl is-active --quiet xrdp && systemctl is-active --quiet xrdp-sesman; then
|
if systemctl is-active --quiet xrdp && systemctl is-active --quiet xrdp-sesman; then
|
||||||
log "✅ Remote-Zugang vollständig konfiguriert:"
|
log "✅ Remote-Zugang vollständig konfiguriert:"
|
||||||
log " 📡 SSH: user:raspberry (Port 22)"
|
log " 📡 SSH: user:$MYP_SSH_PASSWORD (Port 22)"
|
||||||
log " 🖥️ RDP: root:744563017196A (Port 3389)"
|
log " 🖥️ RDP: root:$MYP_MAIN_PASSWORD (Port 3389)"
|
||||||
log " 🖥️ RDP: user:raspberry (Port 3389)"
|
log " 🖥️ RDP: user:$MYP_SSH_PASSWORD (Port 3389)"
|
||||||
elif systemctl is-active --quiet ssh; then
|
elif systemctl is-active --quiet ssh; then
|
||||||
log "✅ SSH-Zugang konfiguriert:"
|
log "✅ SSH-Zugang konfiguriert:"
|
||||||
log " 📡 SSH: user:raspberry (Port 22)"
|
log " 📡 SSH: user:$MYP_SSH_PASSWORD (Port 22)"
|
||||||
warning "⚠️ RDP-Installation unvollständig"
|
warning "⚠️ RDP-Installation unvollständig"
|
||||||
info "Manuelle Überprüfung erforderlich:"
|
info "Manuelle Überprüfung erforderlich:"
|
||||||
info " systemctl status xrdp"
|
info " systemctl status xrdp"
|
||||||
@ -3750,7 +3953,7 @@ test_remote_access() {
|
|||||||
info "Zugang-URLs:"
|
info "Zugang-URLs:"
|
||||||
info " SSH: ssh user@$ip_address"
|
info " SSH: ssh user@$ip_address"
|
||||||
if [ "$xrdp_status" = "✅" ]; then
|
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
|
fi
|
||||||
else
|
else
|
||||||
warning "⚠️ Keine Netzwerk-IP ermittelt"
|
warning "⚠️ Keine Netzwerk-IP ermittelt"
|
||||||
@ -4068,6 +4271,9 @@ main() {
|
|||||||
# Grundlegende Validierung
|
# Grundlegende Validierung
|
||||||
check_root
|
check_root
|
||||||
|
|
||||||
|
# Credentials validieren
|
||||||
|
validate_credentials
|
||||||
|
|
||||||
# Automatische Modus-Erkennung
|
# Automatische Modus-Erkennung
|
||||||
detect_installation_mode "$@"
|
detect_installation_mode "$@"
|
||||||
|
|
||||||
@ -4157,6 +4363,9 @@ install_dependencies_only_auto() {
|
|||||||
deploy_application
|
deploy_application
|
||||||
install_npm_dependencies
|
install_npm_dependencies
|
||||||
|
|
||||||
|
# Credentials deployen
|
||||||
|
deploy_credentials
|
||||||
|
|
||||||
# Berechtigungen für kiosk-User korrigieren
|
# Berechtigungen für kiosk-User korrigieren
|
||||||
fix_project_permissions
|
fix_project_permissions
|
||||||
create_permission_fix_script
|
create_permission_fix_script
|
||||||
@ -4208,6 +4417,9 @@ install_full_production_system_auto() {
|
|||||||
deploy_application
|
deploy_application
|
||||||
install_npm_dependencies
|
install_npm_dependencies
|
||||||
|
|
||||||
|
# Credentials deployen
|
||||||
|
deploy_credentials
|
||||||
|
|
||||||
# Berechtigungen für kiosk-User korrigieren
|
# Berechtigungen für kiosk-User korrigieren
|
||||||
fix_project_permissions
|
fix_project_permissions
|
||||||
create_permission_fix_script
|
create_permission_fix_script
|
||||||
@ -4275,8 +4487,8 @@ show_final_summary() {
|
|||||||
echo ""
|
echo ""
|
||||||
echo -e "${BLUE}📋 Was wurde installiert:${NC}"
|
echo -e "${BLUE}📋 Was wurde installiert:${NC}"
|
||||||
echo -e " ✅ Vollständige Kiosk-Installation"
|
echo -e " ✅ Vollständige Kiosk-Installation"
|
||||||
echo -e " ✅ Remote-Zugang (RDP: root:744563017196A)"
|
echo -e " ✅ Remote-Zugang (RDP: root:$MYP_MAIN_PASSWORD)"
|
||||||
echo -e " ✅ SSH-Zugang (user: raspberry)"
|
echo -e " ✅ SSH-Zugang (user: $MYP_SSH_PASSWORD)"
|
||||||
echo -e " ✅ Automatischer Kiosk-Start beim Boot"
|
echo -e " ✅ Automatischer Kiosk-Start beim Boot"
|
||||||
echo -e " ✅ Firewall und Sicherheitskonfiguration"
|
echo -e " ✅ Firewall und Sicherheitskonfiguration"
|
||||||
echo -e " ✅ Performance-Optimierungen"
|
echo -e " ✅ Performance-Optimierungen"
|
||||||
|
Reference in New Issue
Block a user