It appears that the repository has undergone several changes and renamings:
This commit is contained in:
File diff suppressed because it is too large
Load Diff
211
backend/docs/CREDENTIALS_INTEGRATION.md
Normal file
211
backend/docs/CREDENTIALS_INTEGRATION.md
Normal file
@ -0,0 +1,211 @@
|
||||
# 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
|
66
backend/docs/EINFACHE_ANLEITUNG.md
Normal file
66
backend/docs/EINFACHE_ANLEITUNG.md
Normal file
@ -0,0 +1,66 @@
|
||||
# 🚀 MYP SUPER-ANLEITUNG
|
||||
|
||||
## Das EINZIGE Skript für ALLES!
|
||||
|
||||
Du musst nur **ein einziges intelligentes Super-Skript** ausführen und ALLE Probleme werden automatisch erkannt und behoben:
|
||||
|
||||
### Auf dem Raspberry Pi:
|
||||
|
||||
```bash
|
||||
# 1. Ins MYP-Verzeichnis wechseln
|
||||
cd /opt/myp
|
||||
|
||||
# 2. Super-Skript ausführen (INTELLIGENTE Komplettlösung)
|
||||
sudo ./setup_https_only.sh
|
||||
```
|
||||
|
||||
**Das war's!** Das Skript ist intelligent! 🎉
|
||||
|
||||
## Was das Super-Skript automatisch macht:
|
||||
|
||||
🔥 **INTELLIGENTE PROBLEMERKENNUNG** - erkennt und behebt alle Probleme automatisch
|
||||
✅ **ERR_SSL_KEY_USAGE_INCOMPATIBLE** behebt
|
||||
✅ **"graphical session target not found"** behebt
|
||||
✅ **"connection refused"** automatisch repariert
|
||||
✅ **Port 5000 komplett blockiert** (nur HTTPS Port 443)
|
||||
✅ **Kiosk intelligent konfiguriert** (Desktop/Headless automatisch erkannt)
|
||||
✅ **SSL-Zertifikate automatisch** generiert und geprüft
|
||||
✅ **Firewall intelligent** konfiguriert
|
||||
✅ **Alle Services automatisch** repariert
|
||||
✅ **Port-Konflikte** automatisch gelöst
|
||||
✅ **Service-Dependencies** automatisch korrigiert
|
||||
|
||||
## Nach dem Setup:
|
||||
|
||||
- **Zugriff nur über**: https://localhost oder https://m040tbaraspi001.de040.corpintra.net
|
||||
- **Kiosk startet automatisch** mit HTTPS
|
||||
- **Browser-Zertifikat-Warnung** ist normal (einfach akzeptieren)
|
||||
|
||||
## Bei Problemen:
|
||||
|
||||
```bash
|
||||
# EINFACH: Super-Skript nochmal ausführen (behebt ALLES automatisch)
|
||||
sudo ./setup_https_only.sh
|
||||
|
||||
# Status prüfen:
|
||||
sudo systemctl status myp-production myp-kiosk
|
||||
|
||||
# Logs anzeigen:
|
||||
sudo journalctl -u myp-production -f
|
||||
|
||||
# Verbindung testen:
|
||||
curl -k -v https://localhost
|
||||
```
|
||||
|
||||
**💡 Das Super-Skript erkennt und behebt automatisch:**
|
||||
- ✅ "graphical session target not found"
|
||||
- ✅ "connection refused"
|
||||
- ✅ SSL-Probleme
|
||||
- ✅ Service-Probleme
|
||||
- ✅ Port-Konflikte
|
||||
- ✅ Firewall-Probleme
|
||||
- ✅ Kiosk-Konfiguration
|
||||
|
||||
---
|
||||
|
||||
**🎯 Ein Befehl - alles erledigt!**
|
264
backend/docs/PRODUCTION_HTTPS_SETUP.md
Normal file
264
backend/docs/PRODUCTION_HTTPS_SETUP.md
Normal file
@ -0,0 +1,264 @@
|
||||
# MYP Production HTTPS-Only Setup
|
||||
|
||||
## 🎯 Ziel
|
||||
- **ERR_SSL_KEY_USAGE_INCOMPATIBLE** beheben
|
||||
- Nur Port 443 (HTTPS) verwenden
|
||||
- Port 5000 (HTTP) komplett deaktivieren
|
||||
- Kiosk-Modus automatisch starten
|
||||
- Firewall: Nur Port 443 offen
|
||||
|
||||
## 🚀 Schnelle Lösung (Raspberry Pi)
|
||||
|
||||
### Super-Skript (Das EINZIGE was du brauchst!)
|
||||
```bash
|
||||
# Intelligentes Super-Skript für ALLE Probleme:
|
||||
cd /opt/myp
|
||||
sudo ./setup_https_only.sh
|
||||
|
||||
# Das Super-Skript erkennt und behebt automatisch:
|
||||
# ✅ ERR_SSL_KEY_USAGE_INCOMPATIBLE
|
||||
# ✅ graphical session target not found
|
||||
# ✅ connection refused
|
||||
# ✅ Port-Konflikte (5000 blockieren, 443 öffnen)
|
||||
# ✅ SSL-Zertifikat-Probleme
|
||||
# ✅ Service-Dependencies
|
||||
# ✅ Kiosk-Konfiguration (Desktop/Headless automatisch)
|
||||
# ✅ Firewall-Optimierung
|
||||
```
|
||||
|
||||
### 3. Services prüfen
|
||||
```bash
|
||||
# Status prüfen:
|
||||
sudo systemctl status myp-production
|
||||
sudo systemctl status myp-kiosk
|
||||
|
||||
# Logs anzeigen:
|
||||
sudo journalctl -u myp-production -f
|
||||
```
|
||||
|
||||
## 📋 Manuelle Schritte (falls Skripte nicht verfügbar)
|
||||
|
||||
### 1. Alte Services stoppen
|
||||
```bash
|
||||
sudo systemctl stop myp-https myp-app myp-kiosk
|
||||
sudo systemctl disable myp-https myp-app
|
||||
```
|
||||
|
||||
### 2. Browser-kompatible SSL-Zertifikate erstellen
|
||||
```bash
|
||||
# SSL-Verzeichnis erstellen
|
||||
sudo mkdir -p /opt/myp/ssl
|
||||
cd /opt/myp/ssl
|
||||
|
||||
# Browser-kompatible OpenSSL-Konfiguration
|
||||
sudo tee ssl.conf << 'EOF'
|
||||
[req]
|
||||
distinguished_name = req_distinguished_name
|
||||
req_extensions = v3_req
|
||||
prompt = no
|
||||
|
||||
[req_distinguished_name]
|
||||
C = DE
|
||||
ST = Baden-Wuerttemberg
|
||||
L = Stuttgart
|
||||
O = Mercedes-Benz AG
|
||||
OU = MYP Druckerverwaltung
|
||||
CN = m040tbaraspi001
|
||||
|
||||
[v3_req]
|
||||
# KRITISCH für Browser-Kompatibilität
|
||||
basicConstraints = critical, CA:FALSE
|
||||
keyUsage = critical, digitalSignature, keyEncipherment, keyAgreement
|
||||
extendedKeyUsage = critical, serverAuth, clientAuth
|
||||
subjectAltName = critical, @alt_names
|
||||
nsCertType = server
|
||||
|
||||
[alt_names]
|
||||
DNS.1 = localhost
|
||||
DNS.2 = m040tbaraspi001
|
||||
DNS.3 = m040tbaraspi001.local
|
||||
DNS.4 = m040tbaraspi001.de040.corpintra.net
|
||||
IP.1 = 127.0.0.1
|
||||
EOF
|
||||
|
||||
# Zertifikate generieren
|
||||
sudo openssl genrsa -out key.pem 2048
|
||||
sudo openssl req -new -x509 -key key.pem -out cert.pem \
|
||||
-days 365 -config ssl.conf -extensions v3_req -sha256
|
||||
|
||||
# Berechtigungen setzen
|
||||
sudo chmod 644 cert.pem
|
||||
sudo chmod 600 key.pem
|
||||
sudo rm ssl.conf
|
||||
```
|
||||
|
||||
### 3. Production Service installieren
|
||||
```bash
|
||||
# Service-Datei kopieren
|
||||
sudo cp /opt/myp/systemd/myp-production.service /etc/systemd/system/
|
||||
|
||||
# Service aktivieren
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable myp-production
|
||||
sudo systemctl start myp-production
|
||||
```
|
||||
|
||||
### 4. Kiosk-Service für HTTPS aktualisieren
|
||||
```bash
|
||||
# Aktualisierte Kiosk-Service-Datei kopieren
|
||||
sudo cp /opt/myp/systemd/myp-kiosk.service /etc/systemd/system/
|
||||
|
||||
# Service neu laden und starten
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable myp-kiosk
|
||||
sudo systemctl start myp-kiosk
|
||||
```
|
||||
|
||||
### 5. Firewall für HTTPS-Only konfigurieren
|
||||
```bash
|
||||
# UFW installieren falls nicht vorhanden
|
||||
sudo apt update && sudo apt install -y ufw
|
||||
|
||||
# Firewall zurücksetzen
|
||||
sudo ufw --force reset
|
||||
|
||||
# Restriktive Policies
|
||||
sudo ufw default deny incoming
|
||||
sudo ufw default deny outgoing
|
||||
sudo ufw default deny forward
|
||||
|
||||
# Loopback erlauben
|
||||
sudo ufw allow in on lo
|
||||
sudo ufw allow out on lo
|
||||
|
||||
# SSH beibehalten (falls aktiv)
|
||||
sudo ufw allow 22/tcp
|
||||
|
||||
# Nur HTTPS Port 443 öffnen
|
||||
sudo ufw allow 443/tcp
|
||||
|
||||
# HTTP-Ports explizit blockieren
|
||||
sudo ufw deny 80/tcp
|
||||
sudo ufw deny 5000/tcp
|
||||
|
||||
# System-Updates erlauben
|
||||
sudo ufw allow out 53/udp # DNS
|
||||
sudo ufw allow out 80/tcp # HTTP für Updates
|
||||
sudo ufw allow out 443/tcp # HTTPS für Updates
|
||||
sudo ufw allow out 123/udp # NTP
|
||||
|
||||
# Lokales Netzwerk für Drucker
|
||||
sudo ufw allow out on eth0 to 192.168.0.0/16
|
||||
sudo ufw allow out on wlan0 to 192.168.0.0/16
|
||||
|
||||
# UFW aktivieren
|
||||
sudo ufw --force enable
|
||||
```
|
||||
|
||||
## 🔧 Problembehandlung
|
||||
|
||||
### SSL-Zertifikat-Fehler beheben
|
||||
```bash
|
||||
# SSL-Fix-Skript ausführen (falls vorhanden)
|
||||
sudo /opt/myp/fix_ssl_raspberry.sh
|
||||
|
||||
# Oder manuell neue Zertifikate erstellen (siehe oben)
|
||||
```
|
||||
|
||||
### Connection Refused beheben
|
||||
```bash
|
||||
# Quick Fix ausführen
|
||||
sudo /opt/myp/quick_fix_connection.sh
|
||||
|
||||
# Oder detaillierte Diagnose
|
||||
sudo /opt/myp/debug_connection_refused.sh
|
||||
```
|
||||
|
||||
### Service-Status prüfen
|
||||
```bash
|
||||
# Alle Services prüfen
|
||||
sudo systemctl status myp-production myp-kiosk
|
||||
|
||||
# Logs anzeigen
|
||||
sudo journalctl -u myp-production -f
|
||||
sudo journalctl -u myp-kiosk -f
|
||||
|
||||
# Port-Status prüfen
|
||||
sudo netstat -tlnp | grep :443
|
||||
sudo ss -tlnp | grep :443
|
||||
```
|
||||
|
||||
### Verbindungstest
|
||||
```bash
|
||||
# HTTPS-Verbindung testen
|
||||
curl -k -v https://localhost
|
||||
curl -k -v https://m040tbaraspi001.de040.corpintra.net
|
||||
|
||||
# Port-Erreichbarkeit testen
|
||||
timeout 5 bash -c '</dev/tcp/localhost/443' && echo "Port 443 offen"
|
||||
timeout 5 bash -c '</dev/tcp/localhost/5000' && echo "Port 5000 offen (PROBLEM!)"
|
||||
```
|
||||
|
||||
## 🌐 Zugriffs-URLs
|
||||
|
||||
Nach dem Setup ist MYP nur noch über HTTPS erreichbar:
|
||||
|
||||
- **Lokal**: https://localhost
|
||||
- **Intranet**: https://m040tbaraspi001.de040.corpintra.net
|
||||
- **Direkt**: https://[IP-Adresse]
|
||||
|
||||
## 🔐 Sicherheits-Features
|
||||
|
||||
✅ **Nur Port 443 (HTTPS) öffentlich zugänglich**
|
||||
✅ **Port 5000 (HTTP) komplett blockiert**
|
||||
✅ **Browser-kompatible SSL-Zertifikate**
|
||||
✅ **Automatischer HTTPS-Redirect**
|
||||
✅ **Sicherheits-Headers (HSTS, CSP, etc.)**
|
||||
✅ **Kiosk-Modus verwendet automatisch HTTPS**
|
||||
|
||||
## ⚠️ Wichtige Hinweise
|
||||
|
||||
1. **Browser-Zertifikat-Warnung ist normal** (Self-Signed Certificate)
|
||||
2. **HTTP-Zugriff funktioniert nicht mehr** (nur HTTPS)
|
||||
3. **Root-Berechtigung erforderlich** für Port 443
|
||||
4. **Firewall blockiert alle anderen Ports**
|
||||
5. **Kiosk startet automatisch mit HTTPS-URL**
|
||||
|
||||
## 🏁 Erfolgskontrolle
|
||||
|
||||
Nach dem Setup sollte folgendes funktionieren:
|
||||
|
||||
```bash
|
||||
# 1. Production Service läuft
|
||||
sudo systemctl is-active myp-production
|
||||
# Ausgabe: active
|
||||
|
||||
# 2. HTTPS-Port ist offen
|
||||
sudo netstat -tlnp | grep :443
|
||||
# Ausgabe: tcp 0.0.0.0:443 LISTEN
|
||||
|
||||
# 3. HTTP-Port ist geschlossen
|
||||
sudo netstat -tlnp | grep :5000
|
||||
# Ausgabe: (leer)
|
||||
|
||||
# 4. HTTPS-Webserver antwortet
|
||||
curl -k -s https://localhost | grep -i "MYP"
|
||||
# Ausgabe: HTML mit MYP-Inhalt
|
||||
|
||||
# 5. Kiosk-Service läuft (falls Display vorhanden)
|
||||
sudo systemctl is-active myp-kiosk
|
||||
# Ausgabe: active
|
||||
```
|
||||
|
||||
## 📞 Support
|
||||
|
||||
Bei Problemen:
|
||||
|
||||
1. **Logs prüfen**: `sudo journalctl -u myp-production -f`
|
||||
2. **Quick Fix**: `sudo /opt/myp/quick_fix_connection.sh`
|
||||
3. **Diagnose**: `sudo /opt/myp/debug_connection_refused.sh`
|
||||
4. **SSL-Fix**: `sudo /opt/myp/fix_ssl_raspberry.sh`
|
||||
|
||||
---
|
||||
|
||||
**🎉 Nach diesem Setup läuft MYP sicher im HTTPS-Only Modus mit browser-kompatiblen SSL-Zertifikaten!**
|
202
backend/docs/SETUP_IMPROVEMENTS.md
Normal file
202
backend/docs/SETUP_IMPROVEMENTS.md
Normal file
@ -0,0 +1,202 @@
|
||||
# MYP Setup-Skript Verbesserungen v5.1.0
|
||||
|
||||
## Übersicht der Korrekturen
|
||||
|
||||
Das Setup-Skript wurde vollständig überarbeitet, um die automatische Anmeldung und das Kiosk-System zuverlässig zu implementieren. Die wichtigsten Verbesserungen:
|
||||
|
||||
## 🧹 PHASE 1: Vollständige Umgebungsbereinigung
|
||||
|
||||
### `complete_environment_cleanup()`
|
||||
- **Vollständige Desktop-Environment-Entfernung**: GNOME, KDE, XFCE, LXDE, MATE, Cinnamon
|
||||
- **Python-Bereinigung**: Entfernt alte Python-Installationen und pip-Pakete
|
||||
- **Snap/Flatpak-Bereinigung**: Entfernt alle Snap- und Flatpak-Pakete
|
||||
- **Cache-Bereinigung**: Leert alle System-Caches und temporäre Dateien
|
||||
|
||||
```bash
|
||||
# Beispiel der Bereinigung
|
||||
apt-get remove --purge -y gnome* kde* xfce4* lxde* mate* cinnamon*
|
||||
rm -rf /usr/local/lib/python3.*/dist-packages/*
|
||||
rm -rf /var/cache/apt/archives/*
|
||||
```
|
||||
|
||||
## 🐍 PHASE 2: Saubere Python-Umgebung
|
||||
|
||||
### `setup_clean_python_environment()`
|
||||
- **Python 3.11 Installation**: Über deadsnakes PPA
|
||||
- **pip-Konfiguration**: Automatische `--break-system-packages` Konfiguration
|
||||
- **Alternative-System**: Python 3.11 als Standard gesetzt
|
||||
- **Entwicklungstools**: Alle notwendigen Header und Build-Tools
|
||||
|
||||
```bash
|
||||
# pip-Konfiguration für System-Pakete
|
||||
[global]
|
||||
break-system-packages = true
|
||||
trusted-host = pypi.org
|
||||
pypi.python.org
|
||||
files.pythonhosted.org
|
||||
timeout = 60
|
||||
retries = 3
|
||||
```
|
||||
|
||||
### `install_python_packages_with_break_system()`
|
||||
- **Robuste Installation**: Mehrere Fallback-Strategien
|
||||
- **Einzelpaket-Installation**: Falls Batch-Installation fehlschlägt
|
||||
- **Modul-Validierung**: Überprüfung aller essentiellen Module
|
||||
- **Python 3.11 spezifisch**: Verwendet explizit `python3.11 -m pip`
|
||||
|
||||
## 🖥️ PHASE 3: Minimales Desktop-Environment
|
||||
|
||||
### `install_minimal_desktop_environment()`
|
||||
- **X11-Basis**: Xorg, xinit, x11-xserver-utils
|
||||
- **Window Manager**: OpenBox als leichtgewichtiger WM
|
||||
- **Display Manager**: LightDM mit automatischer Konfiguration
|
||||
- **Browser**: Chromium mit Fallback auf Firefox-ESR
|
||||
- **Audio-Support**: PulseAudio und ALSA
|
||||
- **Schriftarten**: Vollständige Font-Sammlung
|
||||
|
||||
```bash
|
||||
# LightDM Autologin-Konfiguration
|
||||
[Seat:*]
|
||||
autologin-user=kiosk
|
||||
autologin-user-timeout=0
|
||||
user-session=openbox
|
||||
```
|
||||
|
||||
## 🔐 PHASE 4: Robuste Autologin-Konfiguration
|
||||
|
||||
### `configure_autologin_robust()`
|
||||
- **Mehrfache Methoden**: Getty, LightDM, nodm parallel
|
||||
- **Getty-Service**: Systemd-Override für tty1
|
||||
- **LightDM-Integration**: Automatische Konfiguration falls verfügbar
|
||||
- **Nodm-Fallback**: Minimaler Display Manager als Backup
|
||||
- **Passwort-Entfernung**: Automatischer Login ohne Passwort
|
||||
|
||||
```bash
|
||||
# Getty-Service Override
|
||||
[Service]
|
||||
ExecStart=
|
||||
ExecStart=-/sbin/agetty --autologin kiosk --noclear %I $TERM
|
||||
Type=idle
|
||||
Restart=always
|
||||
RestartSec=0
|
||||
```
|
||||
|
||||
## 🚀 PHASE 5: Robuste Kiosk-Autostart-Konfiguration
|
||||
|
||||
### `configure_kiosk_autostart_robust()`
|
||||
- **Mehrfache Fallback-Strategien**: X11-Server, Browser, Backend
|
||||
- **Lock-Mechanismus**: Verhindert mehrfache Ausführung
|
||||
- **X11-Server-Management**: Automatischer Start und Überwachung
|
||||
- **Backend-Verfügbarkeit**: Wartet auf MYP-Backend (120s timeout)
|
||||
- **Browser-Optimierung**: Chromium mit vollständigen Kiosk-Parametern
|
||||
|
||||
```bash
|
||||
# Robuste .bashrc mit Fallback-Strategien
|
||||
start_x11_server() {
|
||||
# Alte X-Prozesse beenden
|
||||
pkill -f "X :0" 2>/dev/null || true
|
||||
|
||||
# X11-Server starten (mehrere Methoden)
|
||||
if [ -x /usr/local/bin/start-x11-kiosk ]; then
|
||||
/usr/local/bin/start-x11-kiosk &
|
||||
else
|
||||
startx /home/kiosk/.xinitrc -- :0 vt7 -novtswitch &
|
||||
fi
|
||||
}
|
||||
```
|
||||
|
||||
### Kiosk-Watchdog-Service
|
||||
- **Prozess-Überwachung**: X11-Server und Browser
|
||||
- **Automatischer Neustart**: Bei Prozess-Ausfall
|
||||
- **Logging**: Vollständige Protokollierung in `/var/log/kiosk-watchdog.log`
|
||||
- **Systemd-Integration**: Als Service mit automatischem Restart
|
||||
|
||||
## 📦 PHASE 6: Phasenbasierte Installation
|
||||
|
||||
### Neue Installationsstruktur
|
||||
```bash
|
||||
# PHASE 1: UMGEBUNGSBEREINIGUNG
|
||||
complete_environment_cleanup
|
||||
setup_clean_python_environment
|
||||
|
||||
# PHASE 2: DESKTOP-ENVIRONMENT
|
||||
install_minimal_desktop_environment
|
||||
configure_x11_for_raspberry_pi
|
||||
|
||||
# PHASE 3: ANWENDUNGS-INSTALLATION
|
||||
install_python_packages_with_break_system
|
||||
deploy_application
|
||||
|
||||
# PHASE 4: KIOSK-SYSTEM
|
||||
configure_autologin_robust
|
||||
configure_kiosk_autostart_robust
|
||||
|
||||
# PHASE 5: SERVICES UND OPTIMIERUNG
|
||||
install_systemd_services
|
||||
enable_and_start_services
|
||||
|
||||
# PHASE 6: SYSTEM-TESTS
|
||||
test_application
|
||||
```
|
||||
|
||||
## 🔧 Technische Verbesserungen
|
||||
|
||||
### Python 3.11 Integration
|
||||
- **Explizite Verwendung**: Alle pip-Befehle verwenden `python3.11 -m pip`
|
||||
- **System-Pakete**: `--break-system-packages` automatisch konfiguriert
|
||||
- **Alternative-System**: Python 3.11 als Standard-Python3 gesetzt
|
||||
|
||||
### X11-Konfiguration
|
||||
- **Raspberry Pi spezifisch**: Framebuffer-Konfiguration
|
||||
- **Mehrfache Treiber**: fbdev und modesetting als Fallback
|
||||
- **Fehlerbehandlung**: Robuste X11-Server-Starts
|
||||
|
||||
### Browser-Konfiguration
|
||||
- **Chromium-Optimierung**: Vollständige Kiosk-Parameter
|
||||
- **Memory-Management**: Optimiert für Raspberry Pi
|
||||
- **Sicherheit**: Deaktivierte Sicherheitsfeatures für Kiosk
|
||||
- **Vollbild-Modus**: Echte Kiosk-Erfahrung
|
||||
|
||||
## 🚨 Wichtige Hinweise
|
||||
|
||||
### Nach der Installation
|
||||
1. **Neustart erforderlich**: Für vollständige Kiosk-Aktivierung
|
||||
2. **Automatischer Login**: Kiosk-User loggt sich automatisch ein
|
||||
3. **Browser-Start**: Chromium startet automatisch im Kiosk-Modus
|
||||
4. **Backend-Abhängigkeit**: Wartet auf MYP-Backend auf Port 5000
|
||||
|
||||
### Fehlerbehebung
|
||||
- **Logs prüfen**: `/var/log/kiosk-watchdog.log`
|
||||
- **X11-Fehler**: `/tmp/x11-error.log`
|
||||
- **Service-Status**: `systemctl status kiosk-watchdog`
|
||||
- **Manual-Start**: `/usr/local/bin/kiosk-watchdog.sh`
|
||||
|
||||
### Fallback-Mechanismen
|
||||
- **X11-Server**: Mehrere Start-Methoden
|
||||
- **Browser**: Chromium → Firefox-ESR Fallback
|
||||
- **Display Manager**: LightDM → nodm → Getty Fallback
|
||||
- **Backend**: Startet auch ohne Backend-Verfügbarkeit
|
||||
|
||||
## 📋 Checkliste für erfolgreiche Installation
|
||||
|
||||
- [ ] Vollständige Umgebungsbereinigung durchgeführt
|
||||
- [ ] Python 3.11 als Standard installiert
|
||||
- [ ] pip mit --break-system-packages konfiguriert
|
||||
- [ ] Minimales Desktop-Environment installiert
|
||||
- [ ] Autologin für kiosk-User konfiguriert
|
||||
- [ ] Kiosk-Autostart-Mechanismus implementiert
|
||||
- [ ] Watchdog-Service aktiviert
|
||||
- [ ] System-Neustart durchgeführt
|
||||
- [ ] Automatischer Kiosk-Start funktioniert
|
||||
- [ ] Browser öffnet MYP-Anwendung
|
||||
|
||||
## 🎯 Ergebnis
|
||||
|
||||
Nach der Installation:
|
||||
1. System startet automatisch
|
||||
2. Kiosk-User loggt sich automatisch ein
|
||||
3. X11-Server startet automatisch
|
||||
4. Browser öffnet automatisch http://localhost:5000
|
||||
5. Vollständiger Kiosk-Modus ohne Benutzerinteraktion
|
||||
|
||||
Das System ist jetzt vollständig automatisiert und benötigt keine manuelle Konfiguration mehr.
|
261
backend/docs/SETUP_README.md
Normal file
261
backend/docs/SETUP_README.md
Normal file
@ -0,0 +1,261 @@
|
||||
# MYP Druckerverwaltung - Vollautomatisches Setup
|
||||
|
||||
## 🚀 Überblick
|
||||
|
||||
Das MYP Setup-Skript wurde vollständig überarbeitet und ist jetzt **vollautomatisch**. Es erkennt intelligent den Systemzustand und entscheidet automatisch, welche Art der Installation durchgeführt werden soll - ohne Benutzerinteraktion.
|
||||
|
||||
## ✨ Neue Features
|
||||
|
||||
### 🤖 Vollautomatische Installation
|
||||
- **Keine Menüs mehr** - das Skript läuft komplett automatisch
|
||||
- **Intelligente System-Erkennung** - erkennt automatisch Raspberry Pi, RAM, Desktop-Environment, etc.
|
||||
- **Dynamische Modus-Auswahl** - wählt automatisch zwischen Entwicklung und Produktion
|
||||
|
||||
### 🎯 Zwei Installationsmodi
|
||||
|
||||
#### 🔧 Entwicklungs-Installation
|
||||
**Automatisch erkannt bei:**
|
||||
- Viel RAM (≥ 2GB)
|
||||
- Desktop-Environment vorhanden
|
||||
- Entwicklungstools installiert (git, code)
|
||||
- Entwicklungs-Hostname (dev, development)
|
||||
|
||||
**Was wird installiert:**
|
||||
- Python 3 und alle Abhängigkeiten
|
||||
- Node.js und npm
|
||||
- SSL-Zertifikate
|
||||
- Anwendung deployed nach `/opt/myp`
|
||||
- Systemd-Services
|
||||
- Performance-Optimierungen
|
||||
|
||||
#### 🎯 Produktions-Installation (Kiosk)
|
||||
**Automatisch erkannt bei:**
|
||||
- Raspberry Pi Hardware
|
||||
- Wenig RAM (< 2GB)
|
||||
- Kein Desktop-Environment
|
||||
- Kiosk-User bereits vorhanden
|
||||
- SSH-Service aktiv
|
||||
- Kiosk-Hostname (kiosk, display, terminal)
|
||||
|
||||
**Was wird installiert:**
|
||||
- Vollständige Kiosk-Installation
|
||||
- Remote-Zugang (RDP: root:744563017196A)
|
||||
- SSH-Zugang (user: raspberry)
|
||||
- Automatischer Kiosk-Start beim Boot
|
||||
- Firewall und Sicherheitskonfiguration
|
||||
- Performance-Optimierungen für Raspberry Pi
|
||||
|
||||
## 📋 Verwendung
|
||||
|
||||
### Einfache Ausführung (Empfohlen)
|
||||
```bash
|
||||
sudo ./setup.sh
|
||||
```
|
||||
Das Skript erkennt automatisch den besten Installationsmodus.
|
||||
|
||||
### Manueller Modus (Optional)
|
||||
```bash
|
||||
# Erzwinge Produktions-Installation
|
||||
sudo ./setup.sh --production
|
||||
sudo ./setup.sh --prod
|
||||
sudo ./setup.sh -p
|
||||
|
||||
# Erzwinge Entwicklungs-Installation
|
||||
sudo ./setup.sh --development
|
||||
sudo ./setup.sh --dev
|
||||
sudo ./setup.sh -d
|
||||
|
||||
# Hilfe anzeigen
|
||||
sudo ./setup.sh --help
|
||||
sudo ./setup.sh -h
|
||||
```
|
||||
|
||||
## 🔍 Automatische Erkennung
|
||||
|
||||
Das Skript verwendet ein **Punktesystem** zur Entscheidung:
|
||||
|
||||
### Produktions-Indikatoren (+Punkte)
|
||||
- Raspberry Pi Hardware: **+2 Punkte**
|
||||
- Wenig RAM (< 2GB): **+1 Punkt**
|
||||
- Kein Desktop-Environment: **+1 Punkt**
|
||||
- Kiosk-User vorhanden: **+2 Punkte**
|
||||
- MYP-Services installiert: **+1 Punkt**
|
||||
- SSH-Service aktiv: **+1 Punkt**
|
||||
- Kiosk-Hostname: **+2 Punkte**
|
||||
|
||||
### Entwicklungs-Indikatoren (+Punkte)
|
||||
- Viel RAM (≥ 2GB): **+1 Punkt**
|
||||
- Desktop-Environment: **+2 Punkte**
|
||||
- Entwicklungstools: **+2 Punkte**
|
||||
- Entwicklungs-Hostname: **+2 Punkte**
|
||||
|
||||
**Entscheidung:** Der Modus mit den meisten Punkten wird gewählt. Bei Gleichstand wird Entwicklungsmodus gewählt (sicherer).
|
||||
|
||||
## 📊 Installation Ablauf
|
||||
|
||||
### 1. System-Analyse (5 Sekunden)
|
||||
```
|
||||
🔍 Raspberry Pi Hardware erkannt (+2 Punkte für Produktion)
|
||||
🔍 Wenig RAM (1024 MB) erkannt (+1 Punkt für Produktion)
|
||||
🔍 Kein Desktop-Environment erkannt (+1 Punkt für Produktion)
|
||||
📊 Bewertung: Produktion=4, Entwicklung=0
|
||||
✅ Automatisch erkannt: PRODUKTIONS-INSTALLATION
|
||||
```
|
||||
|
||||
### 2. Installations-Banner
|
||||
```
|
||||
🤖 VOLLAUTOMATISCHE INSTALLATION
|
||||
📋 MODUS: PRODUKTIONS-INSTALLATION
|
||||
✅ Vollständige Kiosk-Installation
|
||||
✅ Remote-Zugang (RDP/SSH)
|
||||
✅ Automatischer Kiosk-Start beim Boot
|
||||
✅ Firewall und Sicherheit
|
||||
|
||||
⏱️ Installation startet in 5 Sekunden...
|
||||
(Drücken Sie Ctrl+C zum Abbrechen)
|
||||
```
|
||||
|
||||
### 3. Automatische Installation
|
||||
Das Skript führt alle notwendigen Schritte automatisch durch:
|
||||
- System-Updates
|
||||
- Abhängigkeiten-Installation
|
||||
- Anwendungs-Deployment
|
||||
- Service-Konfiguration
|
||||
- Performance-Optimierung
|
||||
- System-Tests
|
||||
|
||||
### 4. Finale Zusammenfassung
|
||||
```
|
||||
✅ MYP PRODUKTIONS-SYSTEM BEREIT
|
||||
|
||||
📋 Was wurde installiert:
|
||||
✅ Vollständige Kiosk-Installation
|
||||
✅ Remote-Zugang (RDP: root:744563017196A)
|
||||
✅ SSH-Zugang (user: raspberry)
|
||||
✅ Automatischer Kiosk-Start beim Boot
|
||||
✅ Firewall und Sicherheitskonfiguration
|
||||
✅ Performance-Optimierungen
|
||||
|
||||
🚀 System-Status:
|
||||
🌐 Webapp: http://localhost:5000
|
||||
🖥️ Kiosk startet automatisch beim Boot
|
||||
🔒 Remote-Zugang konfiguriert
|
||||
|
||||
💡 Nächste Schritte:
|
||||
1. System neu starten für vollständige Kiosk-Aktivierung
|
||||
2. Remote-Zugang testen (RDP/SSH)
|
||||
3. Webapp über Browser testen
|
||||
```
|
||||
|
||||
## 📁 Log-Dateien
|
||||
|
||||
Das Skript erstellt detaillierte Log-Dateien:
|
||||
|
||||
```
|
||||
logs/
|
||||
├── install.log # Vollständiges Installations-Log
|
||||
├── errors.log # Nur Fehler
|
||||
├── warnings.log # Nur Warnungen
|
||||
├── debug.log # Debug-Informationen
|
||||
└── install-summary.txt # Automatische Zusammenfassung
|
||||
```
|
||||
|
||||
## 🔧 Erweiterte Features
|
||||
|
||||
### Intelligente Wiederholung
|
||||
- Automatische Wiederholung bei temporären Fehlern
|
||||
- Bis zu 3 Versuche mit 5 Sekunden Pause
|
||||
- Detaillierte Fehler-Protokollierung
|
||||
|
||||
### Performance-Optimierung
|
||||
- Automatische RAM-Erkennung und Anpassung
|
||||
- Festplatten-Optimierung
|
||||
- Service-Optimierung für Raspberry Pi
|
||||
- CSS/JS-Minimierung und Gzip-Kompression
|
||||
|
||||
### Robuste Fehlerbehandlung
|
||||
- Umfassende System-Validierung
|
||||
- Detaillierte Fehler-Logs mit Kontext
|
||||
- Automatische Wiederherstellung bei Problemen
|
||||
- System-Status-Überwachung
|
||||
|
||||
## 🛠️ Fehlerbehebung
|
||||
|
||||
### Häufige Probleme
|
||||
|
||||
#### Installation bricht ab
|
||||
```bash
|
||||
# Prüfe die Log-Dateien
|
||||
cat logs/errors.log
|
||||
cat logs/install-summary.txt
|
||||
|
||||
# Starte mit Debug-Informationen
|
||||
sudo bash -x ./setup.sh
|
||||
```
|
||||
|
||||
#### Falscher Modus erkannt
|
||||
```bash
|
||||
# Erzwinge gewünschten Modus
|
||||
sudo ./setup.sh --production # Für Kiosk
|
||||
sudo ./setup.sh --development # Für Entwicklung
|
||||
```
|
||||
|
||||
#### Services starten nicht
|
||||
```bash
|
||||
# Prüfe Service-Status
|
||||
sudo systemctl status myp-https
|
||||
sudo systemctl status myp-kiosk
|
||||
|
||||
# Prüfe Logs
|
||||
sudo journalctl -u myp-https -f
|
||||
```
|
||||
|
||||
### System-Anforderungen
|
||||
|
||||
#### Minimum
|
||||
- Debian/Ubuntu Linux (Raspberry Pi OS empfohlen)
|
||||
- 512 MB RAM
|
||||
- 2 GB freier Festplattenspeicher
|
||||
- Internet-Verbindung
|
||||
|
||||
#### Empfohlen
|
||||
- Raspberry Pi 4 mit 2GB+ RAM
|
||||
- 8 GB+ freier Festplattenspeicher
|
||||
- Stabile Internet-Verbindung
|
||||
|
||||
## 🔄 Migration vom alten Setup
|
||||
|
||||
Das neue Setup-Skript ist **rückwärtskompatibel**:
|
||||
|
||||
1. **Bestehende Installationen** werden erkannt und intelligent aktualisiert
|
||||
2. **Konfigurationen** bleiben erhalten
|
||||
3. **Services** werden automatisch migriert
|
||||
4. **Keine manuelle Konfiguration** erforderlich
|
||||
|
||||
## 📞 Support
|
||||
|
||||
Bei Problemen:
|
||||
|
||||
1. **Log-Dateien prüfen:** `logs/install-summary.txt`
|
||||
2. **Debug-Modus:** `sudo bash -x ./setup.sh`
|
||||
3. **Manueller Modus:** `sudo ./setup.sh --help`
|
||||
|
||||
## 🎉 Vorteile der neuen Version
|
||||
|
||||
### Für Benutzer
|
||||
- ✅ **Keine Entscheidungen** mehr nötig
|
||||
- ✅ **Schnellere Installation** durch Automatisierung
|
||||
- ✅ **Weniger Fehler** durch intelligente Erkennung
|
||||
- ✅ **Bessere Logs** für Fehlerbehebung
|
||||
|
||||
### Für Entwickler
|
||||
- ✅ **Konsistente Installationen** auf verschiedenen Systemen
|
||||
- ✅ **Einfache Deployment** ohne manuelle Konfiguration
|
||||
- ✅ **Robuste Fehlerbehandlung** mit detailliertem Logging
|
||||
- ✅ **Flexible Parameter** für spezielle Anforderungen
|
||||
|
||||
---
|
||||
|
||||
**Version:** 5.0.0 - Vollautomatische Installation
|
||||
**Kompatibilität:** Debian/Ubuntu Linux, Raspberry Pi OS
|
||||
**Lizenz:** Projektintern
|
Reference in New Issue
Block a user