🔧 Aktualisierung der README.md zur Verbesserung der Backend- und Frontend-Installationsanweisungen. Einführung eines konsolidierten Setup-Skripts für die automatische Installation und Optimierung der Kiosk-Modus-Anweisungen. Hinzufügen eines neuen Dokuments für Verbindungstests zwischen Frontend und Backend. Verbesserte Farbpalette und CSS-Styles für Kiosk-Modus in tailwind.config.js und input.css. 📈
This commit is contained in:
296
docs/FRONTEND_SETUP_CHANGELOG.md
Normal file
296
docs/FRONTEND_SETUP_CHANGELOG.md
Normal file
@@ -0,0 +1,296 @@
|
||||
# Frontend Setup - Changelog und Verbesserungen
|
||||
|
||||
## Übersicht der Änderungen
|
||||
|
||||
**Datum**: 2025-01-06
|
||||
**Bearbeiter**: Claude AI Assistant
|
||||
**Auftrag**: Konsolidierung der Frontend-Installation mit Mercedes SSL-Zertifikaten
|
||||
|
||||
## ✅ Durchgeführte Änderungen
|
||||
|
||||
### 1. Bereinigung unnötiger Skripte
|
||||
|
||||
#### Gelöschte Dateien:
|
||||
|
||||
- `frontend/docker/legacy_deploy.sh` - Veraltetes Deployment-Skript
|
||||
|
||||
#### Begründung:
|
||||
|
||||
- Das legacy Skript war nicht mehr zeitgemäß
|
||||
- Funktionalität wird durch das neue konsolidierte Setup-Skript ersetzt
|
||||
- Reduziert Verwirrung und Wartungsaufwand
|
||||
|
||||
### 2. Neues konsolidiertes Setup-Skript
|
||||
|
||||
#### Erstellt: `frontend/setup.sh`
|
||||
|
||||
- **Größe**: ~700 Zeilen umfassendes Bash-Skript
|
||||
- **Struktur**: Nach Vorbild des Backend `setup.sh` erstellt
|
||||
- **Funktionalität**: Vollständige Frontend-Installation und -Konfiguration
|
||||
|
||||
#### Kernfunktionen:
|
||||
|
||||
1. **Systemvalidierung**
|
||||
|
||||
- Root-Berechtigung prüfen
|
||||
- Debian/Raspbian-System erkennen
|
||||
- Internetverbindung testen
|
||||
2. **Docker-Installation**
|
||||
|
||||
- Docker CE automatisch installieren
|
||||
- Docker Compose Plugin einrichten
|
||||
- Service-Aktivierung für Boot-Start
|
||||
3. **Mercedes SSL-Zertifikate**
|
||||
|
||||
- Selbstsignierte Zertifikate generieren
|
||||
- Subject Alternative Names (SAN) konfigurieren
|
||||
- System-CA-Store Integration
|
||||
4. **Frontend-Deployment**
|
||||
|
||||
- Anwendung nach `/opt/myp-frontend` kopieren
|
||||
- Docker Compose Konfiguration erstellen
|
||||
- Systemd Service einrichten
|
||||
5. **Systemintegration**
|
||||
|
||||
- UFW-Firewall konfigurieren
|
||||
- Automatischer Boot-Start
|
||||
- Umfassende Tests und Monitoring
|
||||
|
||||
### 3. Mercedes SSL-Zertifikat Konfiguration
|
||||
|
||||
#### Zertifikat-Details:
|
||||
|
||||
```
|
||||
Organisation: Mercedes-Benz AG
|
||||
Abteilung: IT-Abteilung
|
||||
Standort: Stuttgart, Baden-Württemberg, Deutschland
|
||||
Land: DE
|
||||
Primäre Domain: m040tbaraspi001.de040.corpintra.net
|
||||
```
|
||||
|
||||
#### Subject Alternative Names (SAN):
|
||||
|
||||
- `m040tbaraspi001.de040.corpintra.net`
|
||||
- `m040tbaraspi001`
|
||||
- `localhost`
|
||||
- `raspberrypi`
|
||||
- `127.0.0.1`
|
||||
- `192.168.0.109`
|
||||
|
||||
#### Speicherorte:
|
||||
|
||||
- Zertifikat: `/etc/ssl/certs/myp/frontend.crt`
|
||||
- Privater Schlüssel: `/etc/ssl/certs/myp/frontend.key`
|
||||
- OpenSSL Konfiguration: `/etc/ssl/certs/myp/openssl.conf`
|
||||
|
||||
### 4. Docker Compose Konfiguration
|
||||
|
||||
#### Erstellt automatisch: `docker-compose.yml`
|
||||
|
||||
```yaml
|
||||
services:
|
||||
frontend-app: # Next.js Application (Port 3000 intern)
|
||||
caddy: # Reverse Proxy (Port 80/443)
|
||||
db: # SQLite Container mit persistenten Volumes
|
||||
```
|
||||
|
||||
#### Volumes:
|
||||
|
||||
- `caddy_data`: Caddy-Daten persistent
|
||||
- `caddy_config`: Caddy-Konfiguration
|
||||
- `db_data`: Datenbank-Dateien
|
||||
|
||||
### 5. Systemd Service Integration
|
||||
|
||||
#### Service-Name: `myp-frontend.service`
|
||||
|
||||
- **Auto-Start**: Beim Boot aktiviert
|
||||
- **Dependencies**: Startet nach Docker-Service
|
||||
- **Working Directory**: `/opt/myp-frontend`
|
||||
- **Restart Policy**: Automatische Wiederherstellung bei Fehlern
|
||||
- **Sicherheit**: Sandboxed mit eingeschränkten Berechtigungen
|
||||
|
||||
### 6. Firewall-Konfiguration (UFW)
|
||||
|
||||
#### Erlaubte Verbindungen:
|
||||
|
||||
- **SSH**: Port 22 (Remote-Zugang)
|
||||
- **HTTP**: Port 80 (Redirect zu HTTPS)
|
||||
- **HTTPS**: Port 443 (Hauptzugang)
|
||||
- **Lokale Verbindungen**: 127.0.0.1, ::1
|
||||
- **Mercedes-Netzwerke**: 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12
|
||||
|
||||
### 7. Interaktives Setup-Menü
|
||||
|
||||
#### Optionen:
|
||||
|
||||
1. **Vollständige Frontend-Installation**
|
||||
|
||||
- Docker, SSL-Zertifikate, Caddy, Services
|
||||
- Komplette Neuinstallation für Produktionsumgebung
|
||||
2. **SSL-Zertifikate neu generieren**
|
||||
|
||||
- Erneuert nur die Zertifikate
|
||||
- Services-Neustart inklusive
|
||||
3. **Service-Status prüfen**
|
||||
|
||||
- Systemd Service Status
|
||||
- Docker Container Gesundheit
|
||||
- Netzwerk-Tests und SSL-Validierung
|
||||
4. **Beenden**
|
||||
|
||||
- Skript verlassen
|
||||
|
||||
### 8. Umfassende Dokumentation
|
||||
|
||||
#### Erstellt: `docs/FRONTEND_INSTALLATION.md`
|
||||
|
||||
- **Umfang**: ~300 Zeilen detaillierte Dokumentation
|
||||
- **Inhalt**:
|
||||
- Schnellstart-Anleitung
|
||||
- Detaillierte Installationsschritte
|
||||
- Service-Management
|
||||
- Troubleshooting-Guide
|
||||
- Backup und Wartung
|
||||
- Performance-Optimierung
|
||||
|
||||
#### Aktualisiert: `README.md`
|
||||
|
||||
- Neue Schnellstart-Sektion mit automatischer Installation
|
||||
- Frontend-Setup-Skript Features dokumentiert
|
||||
- SSL-Zertifikat-Informationen hinzugefügt
|
||||
- Deployment-Szenarien erweitert
|
||||
|
||||
## 🔄 Migrationshinweise
|
||||
|
||||
### Von altem System zu neuem Setup
|
||||
|
||||
#### Alte Methode (Manuell):
|
||||
|
||||
```bash
|
||||
cd frontend
|
||||
pnpm install
|
||||
pnpm build
|
||||
pnpm start # Port 3000
|
||||
```
|
||||
|
||||
#### Neue Methode (Automatisch):
|
||||
|
||||
```bash
|
||||
cd frontend
|
||||
sudo ./setup.sh # Option 1 wählen
|
||||
# Verfügbar unter https://m040tbaraspi001.de040.corpintra.net
|
||||
```
|
||||
|
||||
#### Vorteile der neuen Methode:
|
||||
|
||||
- **Produktions-ready**: HTTPS auf Port 443 statt HTTP auf Port 3000
|
||||
- **Automatisiert**: Komplette Installation ohne manuelle Schritte
|
||||
- **Sicher**: SSL-verschlüsselt mit Mercedes-Zertifikaten
|
||||
- **Wartungsfreundlich**: Systemd-Integration für Service-Management
|
||||
- **Skalierbar**: Docker-basiert für bessere Ressourcenverwaltung
|
||||
|
||||
## 🧪 Tests und Validierung
|
||||
|
||||
### Automatische Tests im Setup-Skript:
|
||||
|
||||
1. **System-Validierung**
|
||||
|
||||
- Root-Berechtigung
|
||||
- Debian/Raspbian-Erkennung
|
||||
- Internetverbindung
|
||||
2. **Installation-Verification**
|
||||
|
||||
- Docker-Service Status
|
||||
- SSL-Zertifikat Gültigkeit
|
||||
- Container-Gesundheit
|
||||
3. **Netzwerk-Tests**
|
||||
|
||||
- HTTPS-Verbindung zu Domain
|
||||
- localhost-Fallback
|
||||
- Health-Endpoint Verfügbarkeit
|
||||
4. **Service-Integration**
|
||||
|
||||
- Systemd Service Status
|
||||
- Automatischer Boot-Start
|
||||
- Log-Dateien Zugriff
|
||||
|
||||
## 📊 Performance-Verbesserungen
|
||||
|
||||
### Container-Optimierungen:
|
||||
|
||||
- **Multi-Stage Builds**: Reduzierte Image-Größen
|
||||
- **Health Checks**: Automatische Fehlerbehandlung (30s Intervall)
|
||||
- **Resource Limits**: Verhindert Memory-Leaks
|
||||
- **Restart Policies**: Automatische Wiederherstellung
|
||||
|
||||
### Raspberry Pi spezifisch:
|
||||
|
||||
- **Memory Management**: Swappiness reduziert auf 10
|
||||
- **I/O Scheduler**: Optimiert für SD-Karten
|
||||
- **CPU Scheduling**: Verbesserte Interaktivität für Touch-Interface
|
||||
- **Caching**: Effiziente RAM-Nutzung
|
||||
|
||||
## 🔐 Sicherheitsverbesserungen
|
||||
|
||||
### SSL/TLS:
|
||||
|
||||
- **4096-bit RSA**: Stärkere Verschlüsselung als Standard 2048-bit
|
||||
- **Subject Alternative Names**: Unterstützt mehrere Domain-Namen
|
||||
- **System-CA-Integration**: Automatische Vertrauensstellung
|
||||
- **HTTP-zu-HTTPS-Redirect**: Automatische Sicherheitsweiterleitung
|
||||
|
||||
### Container-Sicherheit:
|
||||
|
||||
- **Sandboxed Execution**: NoNewPrivileges, PrivateTmp
|
||||
- **Read-Only Mounts**: SSL-Zertifikate schreibgeschützt
|
||||
- **Network Isolation**: Container-zu-Container Kommunikation begrenzt
|
||||
- **Privilege Restriction**: Minimale erforderliche Berechtigungen
|
||||
|
||||
### Firewall:
|
||||
|
||||
- **Restriktive Standard-Policy**: Deny incoming, allow outgoing
|
||||
- **Whitelist-Ansatz**: Nur explizit erlaubte Verbindungen
|
||||
- **Netzwerk-Segmentierung**: Mercedes-interne Bereiche definiert
|
||||
|
||||
## 🚀 Nächste Schritte
|
||||
|
||||
### Geplante Erweiterungen:
|
||||
|
||||
1. **Monitoring-Dashboard**: Integration von Prometheus/Grafana für Container-Metriken
|
||||
2. **Automatische Updates**: Rolling-Updates für Container ohne Downtime
|
||||
3. **Backup-Automation**: Regelmäßige Sicherung von Datenbank und Konfiguration
|
||||
4. **Load Balancing**: Horizontal-Skalierung bei höherer Last
|
||||
|
||||
### Wartungsaufgaben:
|
||||
|
||||
1. **Zertifikat-Rotation**: Automatische Erneuerung vor Ablauf
|
||||
2. **Log-Rotation**: Automatisches Archivieren großer Log-Dateien
|
||||
3. **Security Updates**: Regelmäßige Container-Image Updates
|
||||
4. **Performance-Monitoring**: Überwachung von Ressourcenverbrauch
|
||||
|
||||
## 📝 Fazit
|
||||
|
||||
Die Konsolidierung des Frontend-Setups bietet erhebliche Verbesserungen:
|
||||
|
||||
### ✅ Erreichte Ziele:
|
||||
|
||||
- **Ein einziges Setup-Skript**: Ersetzt alle manuellen Installationsschritte
|
||||
- **Produktions-ready**: HTTPS unter korrekter Mercedes-Domain verfügbar
|
||||
- **Automatisiert**: Minimaler manueller Aufwand für Deployment
|
||||
- **Dokumentiert**: Umfassende Anleitung für alle Szenarien
|
||||
- **Sicher**: SSL-verschlüsselt mit Mercedes-konformen Zertifikaten
|
||||
|
||||
### 🎯 Bewertung:
|
||||
|
||||
- **Wartbarkeit**: Deutlich verbessert durch Systemd-Integration
|
||||
- **Skalierbarkeit**: Docker-basiert für flexible Ressourcenverteilung
|
||||
- **Sicherheit**: Produktions-konforme SSL-Verschlüsselung
|
||||
- **Benutzerfreundlichkeit**: Interaktives Menü für alle Administrationsaufgaben
|
||||
|
||||
---
|
||||
|
||||
**Erstellt**: 2025-01-06
|
||||
**Autor**: Claude AI Assistant
|
||||
**Version**: 1.0.0
|
||||
**Zweck**: Dokumentation der Frontend-Setup-Konsolidierung für MYP-Projekt
|
Reference in New Issue
Block a user