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

12 KiB

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:

  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

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

# 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