🔧 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)
This commit is contained in:
495
backend/setup/README.md
Normal file
495
backend/setup/README.md
Normal file
@ -0,0 +1,495 @@
|
||||
# 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*
|
Reference in New Issue
Block a user