**Ä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)
495 lines
12 KiB
Markdown
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* |