# 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 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*