Files
Projektarbeit-MYP/backend/setup/README.md
Till Tomczak 5fb08674c6 🔧 Update: Datenbankdateien aktualisiert und WAL-Datei entfernt
**Änderungen:**
-  Aktualisierte `myp.db`-Datenbankdatei mit neuen Inhalten.
-  Gelöscht: `myp.db-wal`-Datei zur Bereinigung und Optimierung der Datenbankstruktur.

**Ergebnis:**
- Verbesserte Datenbankintegrität und Performance durch die Aktualisierung der Hauptdatenbankdatei und das Entfernen der WAL-Datei.

🤖 Generated with [Claude Code](https://claude.ai/code)
2025-06-16 07:07:33 +02:00

495 lines
12 KiB
Markdown

# MYP AIO-Installer (All-in-One Installation System)
Der MYP AIO-Installer ist ein umfassendes Installationssystem für das Mercedes-Benz 3D-Drucker-Management-System (MYP). Es automatisiert die vollständige Einrichtung von einem Standard-Debian/Linux-System zu einem produktionsbereiten MYP-Terminal im Kiosk-Modus.
## 🚀 Funktionalitäten
### Systemeinrichtung
-**Umgebungsvorbereitung**: Automatische Pfad-Konfiguration und Berechtigungseinrichtung
-**Desktop-Bereinigung**: Entfernung bestehender Desktop-Environments (GNOME, KDE, XFCE, etc.)
-**System-Updates**: Vollständige Aktualisierung aller Pakete und Repositories
-**Hostname-Konfiguration**: Anpassung des System-Hostnames
### Abhängigkeiten & Build-System
-**Python-Installation**: Python 3.8+ mit pip und `--break-system-packages`
-**Node.js-Installation**: Node.js 18+ mit npm für Frontend-Build
-**Dependency-Management**: Automatische Installation aller Python- und Node.js-Abhängigkeiten
-**Asset-Build**: TailwindCSS-Kompilierung und Asset-Optimierung
### Desktop & Kiosk-Modus
-**LXDE-Installation**: Leichtgewichtiges Desktop-Environment
-**Chromium-Kiosk**: Vollbild-Browser-Kiosk mit optimierten Einstellungen
-**Automatische Anmeldung**: Nahtloser Übergang in den Kiosk-Modus
-**Display-Management**: LightDM-Konfiguration für Autostart
### Systemdienste
-**SystemD-Services**: MYP-HTTPS-Service und Kiosk-Service
-**Service-Monitoring**: Automatische Neustart-Mechanismen
-**Timer-Services**: Backup, Cleanup und Health-Check-Automatisierung
-**Benutzer-Management**: Dedizierter MYP-Systembenutzer mit begrenzten Rechten
### Sicherheit & Netzwerk
-**UFW-Firewall**: Automatische Firewall-Konfiguration mit Sicherheitszonen
-**SSH-Absicherung**: Verschärfte SSH-Konfiguration mit Zugangsbeschränkung
-**Fail2Ban**: Intrusion Detection für SSH und HTTP-Services
-**SSL-Zertifikate**: Automatische Generierung selbstsignierter Zertifikate
### Monitoring & Wartung
-**Log-Rotation**: Automatische Log-Verwaltung und -Archivierung
-**Health-Checks**: Regelmäßige System- und Service-Überwachung
-**Backup-System**: Automatisierte Datensicherung
-**Performance-Monitoring**: Netzwerk- und Resource-Überwachung
### Test & Validierung
-**Umfassende Tests**: System-, Service-, Netzwerk- und Sicherheitstests
-**Performance-Tests**: Startup-Zeit und Response-Zeit-Messung
-**Integration-Tests**: Vollständige Funktionalitätsprüfung
-**Detailed Reports**: Ausführliche Test- und Installationsberichte
## 📋 Systemanforderungen
### Mindestanforderungen
- **Betriebssystem**: Debian 11+ oder Ubuntu 20.04+
- **Speicher**: 512 MB RAM (1 GB empfohlen)
- **Festplatte**: 2 GB freier Speicher (4 GB empfohlen)
- **Netzwerk**: Internetverbindung für Downloads
- **Rechte**: Root-Zugang erforderlich
### Optimiert für
- **Raspberry Pi**: Spezielle Optimierungen für Raspberry Pi 3B+ und 4
- **LXDE-Desktop**: Leichtgewichtige Desktop-Umgebung
- **Kiosk-Anwendungen**: Vollbild-Browser-Terminal
## 🛠️ Installation
### Schnell-Installation (Empfohlen)
```bash
# 1. Repository klonen oder Installer herunterladen
git clone <repository-url>
cd backend/setup
# 2. Installer ausführbar machen
chmod +x aio_installer.sh
# 3. Vollinstallation starten
sudo ./aio_installer.sh --full
```
### Interaktive Installation
```bash
# Installer im interaktiven Modus starten
sudo ./aio_installer.sh
```
Das Hauptmenü bietet folgende Optionen:
1. **Vollinstallation** - Komplette Systemeinrichtung (empfohlen)
2. **Upgrade** - Bestehende Installation aktualisieren
3. **System-Test** - Nur Tests durchführen
4. **Einzelne Komponenten** - Modulare Installation
5. **System-Information** - Aktueller Systemstatus
6. **Deinstallation** - Vollständige Entfernung
### Kommandozeilen-Optionen
```bash
# Vollinstallation ohne Bestätigung
sudo ./aio_installer.sh --full
# Upgrade bestehender Installation
sudo ./aio_installer.sh --upgrade
# Nur Tests durchführen
sudo ./aio_installer.sh --test
# System deinstallieren
sudo ./aio_installer.sh --uninstall
# Hilfe anzeigen
./aio_installer.sh --help
```
## ⚙️ Konfiguration
### Installer-Konfiguration anpassen
Bearbeiten Sie `installer.conf` vor der Installation:
```bash
nano installer.conf
```
Wichtige Konfigurationsoptionen:
```bash
# Projekt-Einstellungen
PROJECT_USER="myp"
HOSTNAME_DEFAULT="myp-terminal"
# Hardware-Optimierung
RASPBERRY_PI_OPTIMIZATIONS="true"
GPU_MEMORY_SPLIT="128"
# Sicherheit
ENABLE_FIREWALL="true"
RESTRICT_SSH="true"
# Desktop
ENABLE_KIOSK="true"
ENABLE_AUTO_LOGIN="true"
```
### Netzwerk-Sicherheitszonen
```bash
# Vertrauenswürdige Netzwerke (Vollzugriff)
TRUSTED_NETWORKS="192.168.1.0/24,10.10.0.0/16"
# Produktions-Netzwerke (HTTPS-Zugriff)
PRODUCTION_NETWORKS="192.168.0.0/16,10.0.0.0/8"
# Eingeschränkte Netzwerke (nur HTTPS)
RESTRICTED_NETWORKS="192.168.100.0/24"
```
## 📁 Verzeichnisstruktur
Nach der Installation:
```
/opt/myp/ # Hauptinstallation
├── app.py # Flask-Anwendung
├── models.py # Datenbankmodelle
├── requirements.txt # Python-Abhängigkeiten
├── package.json # Node.js-Abhängigkeiten
├── static/ # Web-Assets
├── templates/ # HTML-Templates
├── uploads/ # Datei-Uploads
├── database/ # SQLite-Datenbank
├── certs/ # SSL-Zertifikate
└── logs/ # Anwendungs-Logs
/var/log/myp/ # System-Logs
├── app.log # Haupt-Anwendungslog
├── kiosk.log # Kiosk-Service-Log
├── backup.log # Backup-Logs
└── healthcheck.log # Health-Check-Logs
/etc/myp/ # Konfigurationsdateien
├── credentials.txt # System-Zugangsdaten
├── network-zones.conf # Netzwerk-Sicherheitszonen
└── firewall-backups/ # Firewall-Regel-Backups
```
## 🔧 Systemdienste
### Haupt-Services
```bash
# MYP HTTPS-Service
sudo systemctl status myp-https
sudo systemctl restart myp-https
# MYP Kiosk-Service
sudo systemctl status myp-kiosk
sudo systemctl restart myp-kiosk
```
### Wartungs-Services
```bash
# Backup-Service (wöchentlich)
sudo systemctl status myp-backup.timer
# Bereinigung-Service (täglich)
sudo systemctl status myp-cleanup.timer
# Health-Check-Service (alle 15 Minuten)
sudo systemctl status myp-healthcheck.timer
# Netzwerk-Monitor (alle 10 Minuten)
sudo systemctl status myp-netmon.timer
```
## 🔒 Sicherheitsfeatures
### Firewall-Konfiguration
```bash
# Firewall-Status prüfen
sudo ufw status verbose
# Firewall-Zonen anwenden
sudo /usr/local/bin/myp-zones.sh apply
# Firewall-Report erstellen
sudo /usr/local/bin/myp-firewall-backup.sh
```
### SSH-Sicherheit
- Root-Login deaktiviert
- Passwort-Authentifizierung aktiviert
- Zugang nur aus lokalen Netzwerken
- Fail2Ban-Schutz gegen Brute-Force-Angriffe
- Verschärfte SSH-Konfiguration
### SSL/TLS
- Automatisch generierte selbstsignierte Zertifikate
- HTTPS-erzwungene Verbindungen
- Sichere Cipher-Suites
## 📊 Monitoring & Wartung
### System-Status prüfen
```bash
# MYP-spezifische Befehle (als myp-Benutzer)
myp-quick-status # Schneller Statusüberblick
myp-logs # Live-Logs anzeigen
myp-backup # Manuelles Backup erstellen
# Service-Status
sudo systemctl status myp-https
sudo systemctl status myp-kiosk
# System-Health
sudo journalctl -u myp-healthcheck -f
```
### Log-Dateien
```bash
# Haupt-Anwendungslog
sudo tail -f /var/log/myp/app.log
# Kiosk-Service-Log
sudo tail -f /var/log/myp-kiosk.log
# Health-Check-Log
sudo tail -f /var/log/myp/healthcheck.log
# Installer-Log
sudo tail -f /var/log/myp-installer.log
```
### Backup & Wiederherstellung
```bash
# Manuelles Backup
sudo systemctl start myp-backup.service
# Backup-Status prüfen
sudo journalctl -u myp-backup.service
# Backups auflisten
ls -la /opt/myp/instance/backups/
```
## 🚨 Troubleshooting
### Häufige Probleme
**Service startet nicht:**
```bash
# Log-Ausgabe prüfen
sudo journalctl -u myp-https -f
# Service-Status details
sudo systemctl status myp-https -l
# Manueller Start für Debugging
cd /opt/myp
sudo -u myp python3 app.py --debug
```
**Kiosk-Modus funktioniert nicht:**
```bash
# Desktop-Service prüfen
sudo systemctl status lightdm
# X11-Display prüfen
echo $DISPLAY
xdpyinfo
# Chromium-Log prüfen
sudo tail -f /var/log/myp-kiosk.log
```
**Netzwerk-Probleme:**
```bash
# Firewall-Status
sudo ufw status verbose
# Offene Ports prüfen
sudo ss -tlnp
# DNS-Test
nslookup google.com
```
**Speicher-Probleme:**
```bash
# Speicherverbrauch prüfen
free -h
df -h
# Alte Logs bereinigen
sudo journalctl --vacuum-time=7d
sudo find /var/log/myp -name "*.log" -mtime +30 -delete
```
### Test-Tools
```bash
# Vollständigen Test durchführen
sudo ./aio_installer.sh --test
# Spezifische Tests
sudo /usr/local/bin/myp-healthcheck.sh
sudo /usr/local/bin/myp-netmon.sh
```
## 🔄 Upgrade-Prozess
### Automatisches Upgrade
```bash
# Bestehende Installation upgraden
sudo ./aio_installer.sh --upgrade
```
### Manuelles Upgrade
```bash
# 1. Backup erstellen
sudo systemctl start myp-backup.service
# 2. Services stoppen
sudo systemctl stop myp-kiosk
sudo systemctl stop myp-https
# 3. Code aktualisieren
cd /opt/myp
sudo -u myp git pull
# 4. Dependencies aktualisieren
sudo -u myp pip3 install -r requirements.txt --break-system-packages --upgrade
sudo -u myp npm update
# 5. Assets neu bauen
sudo -u myp npm run build:css
# 6. Services starten
sudo systemctl start myp-https
sudo systemctl start myp-kiosk
# 7. Tests durchführen
sudo ./aio_installer.sh --test
```
## 📈 Performance-Optimierung
### Raspberry Pi Optimierungen
Der Installer wendet automatisch Raspberry Pi-spezifische Optimierungen an:
- GPU Memory Split auf 128MB
- Moderate Overclock-Einstellungen
- Swap-Optimierung für SD-Karten
- Deaktivierung unnötiger Services
### Datenbank-Optimierung
- SQLite WAL-Modus für bessere Concurrent-Performance
- Optimierte Cache-Einstellungen
- Automatische Bereinigung alter Daten
### Web-Performance
- Asset-Komprimierung (Gzip)
- Optimierte TailwindCSS-Builds
- Minimierte HTTP-Requests
## 🔧 Erweiterte Konfiguration
### Custom-Scripts
Fügen Sie eigene Post-Install-Scripts hinzu:
```bash
# In installer.conf
POST_INSTALL_SCRIPTS="/path/to/custom-script.sh"
```
### Zusätzliche Packages
```bash
# In installer.conf
ADDITIONAL_PYTHON_PACKAGES="package1,package2"
ADDITIONAL_APT_PACKAGES="package1 package2"
```
### Development-Modus
```bash
# In installer.conf aktivieren
DEVELOPMENT_MODE="true"
INSTALL_DEV_TOOLS="true"
```
## 📞 Support & Dokumentation
### Log-Analyse
Alle wichtigen Logs werden zentral gesammelt und rotiert:
- `/var/log/myp/` - MYP-System-Logs
- `/var/log/myp-installer.log` - Installer-Log
- `journalctl -u myp-*` - SystemD-Service-Logs
### Test-Reports
Nach jeder Installation wird ein detaillierter Report erstellt:
- `/var/log/myp/installation-test-report-*.txt`
- `/var/log/myp/test-summary.txt`
### System-Information
```bash
# Detaillierte System-Info
sudo ./aio_installer.sh
# Option 5: System-Information anzeigen
```
## 🏆 Best Practices
### Sicherheit
1. **Regelmäßige Updates**: Nutzen Sie den Upgrade-Mechanismus
2. **Firewall-Monitoring**: Überprüfen Sie regelmäßig die Firewall-Logs
3. **Passwort-Management**: Ändern Sie Standard-Passwörter
4. **Netzwerk-Segmentierung**: Nutzen Sie die Sicherheitszonen
### Wartung
1. **Backup-Strategie**: Richten Sie regelmäßige Backups ein
2. **Log-Monitoring**: Überwachen Sie die System-Logs
3. **Performance-Checks**: Nutzen Sie die Health-Check-Services
4. **Kapazitäts-Planung**: Überwachen Sie Speicher und CPU-Auslastung
### Betrieb
1. **Kiosk-Stabilität**: Nutzen Sie den automatischen Restart-Mechanismus
2. **Service-Monitoring**: Überwachen Sie die SystemD-Services
3. **Netzwerk-Stabilität**: Nutzen Sie das Netzwerk-Monitoring
4. **Update-Strategie**: Planen Sie regelmäßige Wartungsfenster
---
**Mercedes-Benz 3D-Drucker-Management-System (MYP)**
*Entwickelt für optimale Performance und Sicherheit in Produktionsumgebungen*