297 lines
8.1 KiB
Markdown
297 lines
8.1 KiB
Markdown
# 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
|