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)
# 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
# Installer im interaktiven Modus starten
sudo ./aio_installer.sh
Das Hauptmenü bietet folgende Optionen:
- Vollinstallation - Komplette Systemeinrichtung (empfohlen)
- Upgrade - Bestehende Installation aktualisieren
- System-Test - Nur Tests durchführen
- Einzelne Komponenten - Modulare Installation
- System-Information - Aktueller Systemstatus
- Deinstallation - Vollständige Entfernung
Kommandozeilen-Optionen
# 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:
nano installer.conf
Wichtige Konfigurationsoptionen:
# 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
# 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
# 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
# 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
# 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
# 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
# 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
# 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:
# 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:
# 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:
# Firewall-Status
sudo ufw status verbose
# Offene Ports prüfen
sudo ss -tlnp
# DNS-Test
nslookup google.com
Speicher-Probleme:
# 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
# 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
# Bestehende Installation upgraden
sudo ./aio_installer.sh --upgrade
Manuelles Upgrade
# 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:
# In installer.conf
POST_INSTALL_SCRIPTS="/path/to/custom-script.sh"
Zusätzliche Packages
# In installer.conf
ADDITIONAL_PYTHON_PACKAGES="package1,package2"
ADDITIONAL_APT_PACKAGES="package1 package2"
Development-Modus
# 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-Logjournalctl -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
# Detaillierte System-Info
sudo ./aio_installer.sh
# Option 5: System-Information anzeigen
🏆 Best Practices
Sicherheit
- Regelmäßige Updates: Nutzen Sie den Upgrade-Mechanismus
- Firewall-Monitoring: Überprüfen Sie regelmäßig die Firewall-Logs
- Passwort-Management: Ändern Sie Standard-Passwörter
- Netzwerk-Segmentierung: Nutzen Sie die Sicherheitszonen
Wartung
- Backup-Strategie: Richten Sie regelmäßige Backups ein
- Log-Monitoring: Überwachen Sie die System-Logs
- Performance-Checks: Nutzen Sie die Health-Check-Services
- Kapazitäts-Planung: Überwachen Sie Speicher und CPU-Auslastung
Betrieb
- Kiosk-Stabilität: Nutzen Sie den automatischen Restart-Mechanismus
- Service-Monitoring: Überwachen Sie die SystemD-Services
- Netzwerk-Stabilität: Nutzen Sie das Netzwerk-Monitoring
- Update-Strategie: Planen Sie regelmäßige Wartungsfenster
Mercedes-Benz 3D-Drucker-Management-System (MYP)
Entwickelt für optimale Performance und Sicherheit in Produktionsumgebungen