Files
Projektarbeit-MYP/backend/docs/SETUP_README.md

261 lines
7.0 KiB
Markdown

# 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