# MYP Setup-Skript - Credentials Integration ## 🔐 Überblick Das Setup-Skript wurde erweitert, um alle Credentials aus der `CREDENTIALS.md` zentral zu verwalten und automatisch zu deployen. Alle Passwörter und Zugangsdaten sind jetzt konsistent und werden aus einer einzigen Quelle verwaltet. ## ✨ Neue Features ### 🎯 Zentrale Credentials-Verwaltung Alle Credentials werden am Anfang des Skripts als `readonly` Variablen definiert: ```bash # =========================== CREDENTIALS KONFIGURATION =========================== 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" ``` ### 🔍 Automatische Validierung Das Skript validiert alle Credentials beim Start: ```bash validate_credentials() { # Prüft Länge, Format und Vollständigkeit aller Credentials # Bricht Installation bei Fehlern ab # Zeigt sichere Zusammenfassung der Credentials } ``` **Validierungsregeln:** - `SECRET_KEY`: Mindestens 32 Zeichen - `MAIN_PASSWORD`: Mindestens 8 Zeichen - `SSH_PASSWORD`: Mindestens 4 Zeichen - E-Mail-Adressen: Gültiges Format mit @ und . - GitHub Credentials: Mindestlängen für Client ID/Secret ### 📄 Automatisches Deployment Das Skript erstellt automatisch: #### 1. `.env`-Datei für die Anwendung ```bash # Erstellt in /opt/myp/.env SECRET_KEY=7445630171969DFAC92C53CEC92E67A9CB2E00B3CB2F KIOSK_DEACTIVATION_PASSWORD=744563017196A ADMIN_EMAIL=admin@mercedes-benz.com ADMIN_PASSWORD=744563017196A TAPO_USERNAME=till.tomczak@mercedes-benz.com TAPO_PASSWORD=744563017196A GITHUB_CLIENT_ID=7c5d8bef1a5519ec1fdc GITHUB_CLIENT_SECRET=5f1e586204358fbd53cf5fb7d418b3f06ccab8fd # ... weitere Konfiguration ``` #### 2. Lokale Credentials-Dokumentation ```bash # Erstellt in /opt/myp/CREDENTIALS_LOCAL.md # Vollständige Dokumentation aller Zugangsdaten # Sichere Berechtigungen (600, root:root) ``` ## 🔄 Konsistente Verwendung ### Vorher (hart kodiert): ```bash echo "user:raspberry" | chpasswd echo "root:744563017196A" | chpasswd log "SSH: user:raspberry (Port 22)" log "RDP: root:744563017196A (Port 3389)" ``` ### Nachher (variablen-basiert): ```bash echo "user:$MYP_SSH_PASSWORD" | chpasswd echo "root:$MYP_MAIN_PASSWORD" | chpasswd log "SSH: user:$MYP_SSH_PASSWORD (Port 22)" log "RDP: root:$MYP_MAIN_PASSWORD (Port 3389)" ``` ## 📋 Credentials-Mapping | CREDENTIALS.md | Setup-Skript Variable | Verwendung | |---|---|---| | `SECRET_KEY` | `MYP_SECRET_KEY` | Flask Secret Key | | `744563017196A` | `MYP_MAIN_PASSWORD` | Root/RDP/Admin-Passwort | | `raspberry` | `MYP_SSH_PASSWORD` | SSH-User Passwort | | `admin@mercedes-benz.com` | `MYP_ADMIN_EMAIL` | Admin-Login | | `till.tomczak@mercedes-benz.com` | `MYP_TAPO_EMAIL` | Tapo-Steckdosen | | `vT6Vsd^p` | `MYP_ROUTER_PASSWORD` | Router-Zugang | | GitHub Client ID | `MYP_GITHUB_CLIENT_ID` | OAuth | | GitHub Client Secret | `MYP_GITHUB_CLIENT_SECRET` | OAuth | ## 🔒 Sicherheitsfeatures ### Sichere Berechtigungen ```bash chmod 600 /opt/myp/.env # Nur root kann lesen chmod 600 /opt/myp/CREDENTIALS_LOCAL.md # Nur root kann lesen chown root:root /opt/myp/.env # Root-Besitz chown root:root /opt/myp/CREDENTIALS_LOCAL.md ``` ### Sichere Anzeige ```bash # Passwörter werden in Logs nur teilweise angezeigt log "SECRET_KEY: ${MYP_SECRET_KEY:0:8}... (${#MYP_SECRET_KEY} Zeichen)" log "MAIN_PASSWORD: ${MYP_MAIN_PASSWORD:0:4}... (${#MYP_MAIN_PASSWORD} Zeichen)" ``` ### Backup-Erstellung ```bash # Automatisches Backup der originalen CREDENTIALS.md cp docs/CREDENTIALS.md /opt/myp/CREDENTIALS_backup.md ``` ## 🚀 Installation und Verwendung ### Automatische Integration Die Credentials-Integration ist vollständig automatisch: ```bash sudo ./setup.sh # 1. Validiert alle Credentials # 2. Deployt .env-Datei # 3. Erstellt lokale Dokumentation # 4. Setzt sichere Berechtigungen # 5. Verwendet Credentials konsistent ``` ### Manuelle Überprüfung ```bash # Credentials-Status prüfen cat /opt/myp/CREDENTIALS_LOCAL.md # .env-Datei prüfen (nur als root) sudo cat /opt/myp/.env # Validierung testen sudo bash -c 'source setup.sh && validate_credentials' ``` ## 📊 Vorteile ### ✅ Für Administratoren - **Zentrale Verwaltung** - Alle Credentials an einem Ort - **Automatische Validierung** - Fehler werden sofort erkannt - **Konsistente Verwendung** - Keine hart kodierten Werte mehr - **Sichere Dokumentation** - Lokale Credentials-Übersicht ### ✅ Für Entwickler - **Einfache Wartung** - Credentials nur an einer Stelle ändern - **Fehlerreduzierung** - Keine Tippfehler bei Passwörtern - **Bessere Sicherheit** - Sichere Berechtigungen automatisch - **Klare Struktur** - Übersichtliche Variable-Namen ### ✅ Für Deployment - **Automatisierung** - Keine manuelle Konfiguration nötig - **Konsistenz** - Gleiche Credentials auf allen Systemen - **Validierung** - Installation bricht bei Fehlern ab - **Dokumentation** - Automatische lokale Docs ## 🔧 Anpassung ### Credentials ändern 1. **Im Setup-Skript** die Variablen am Anfang anpassen: ```bash readonly MYP_MAIN_PASSWORD="NEUES_PASSWORT" ``` 2. **CREDENTIALS.md** entsprechend aktualisieren 3. **Setup erneut ausführen** für Deployment ### Neue Credentials hinzufügen 1. **Variable definieren:** ```bash readonly MYP_NEW_CREDENTIAL="wert" ``` 2. **Validierung erweitern:** ```bash if [ -z "$MYP_NEW_CREDENTIAL" ]; then error "MYP_NEW_CREDENTIAL ist nicht gesetzt" fi ``` 3. **Deployment erweitern:** ```bash echo "NEW_CREDENTIAL=$MYP_NEW_CREDENTIAL" >> .env ``` ## 📞 Support Bei Problemen mit Credentials: 1. **Validierung prüfen:** `sudo bash -c 'source setup.sh && validate_credentials'` 2. **Logs überprüfen:** `cat logs/install.log | grep -i credential` 3. **Berechtigungen prüfen:** `ls -la /opt/myp/.env` 4. **Backup verwenden:** `cat /opt/myp/CREDENTIALS_backup.md` --- **Version:** 5.0.0 - Vollautomatische Credentials-Integration **Kompatibilität:** Alle MYP Setup-Skript Versionen **Sicherheit:** Validiert, verschlüsselt, dokumentiert