🎉 Added CREDENTIALS_INTEGRATION documentation, updated logs, and improved setup script. 🚀🔧📚💄

This commit is contained in:
2025-06-10 09:09:47 +02:00
parent 68e87a2740
commit 7854aad0d1
4 changed files with 439 additions and 11 deletions

View File

@ -0,0 +1 @@

View File

@ -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
---

View File

@ -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] 📊 Bewertung: Produktion=1, Entwicklung=1
[2025-06-10 08:58:21] ⚖️ Unentschieden - Standard: ENTWICKLUNGS-INSTALLATION [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: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...

View File

@ -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"