6.9 KiB
6.9 KiB
MYP Platform - Raspberry Pi Deployment Guide
Übersicht
Diese Anleitung beschreibt die vollständige Installation und Konfiguration der MYP Platform auf Raspberry Pi Systemen.
Voraussetzungen
Hardware
- Raspberry Pi 4 (empfohlen) oder Raspberry Pi 3B+
- Mindestens 4GB RAM
- 32GB+ SD-Karte (Class 10)
- Netzwerkverbindung (Ethernet oder WiFi)
Software
- Raspberry Pi OS (Bullseye oder neuer)
- SSH-Zugang aktiviert
- Benutzer
user
erstellt
Installation
1. Projekt auf Raspberry Pi kopieren
# Auf dem Entwicklungsrechner
scp -r Projektarbeit-MYP user@raspberrypi:/home/user/
# Oder mit Git
ssh user@raspberrypi
cd /home/user
git clone <repository-url> Projektarbeit-MYP
2. Setup-Skript ausführen
ssh user@raspberrypi
cd /home/user/Projektarbeit-MYP/backend
chmod +x setup_raspberry_pi.sh
./setup_raspberry_pi.sh
Das Setup-Skript führt automatisch folgende Schritte aus:
- System-Updates: Aktualisiert alle Pakete
- Abhängigkeiten: Installiert Python, Nginx, Supervisor etc.
- Virtual Environment: Erstellt isolierte Python-Umgebung
- Python-Pakete: Installiert alle Requirements
- Verzeichnisse: Erstellt notwendige Ordnerstruktur
- Datenbank: Initialisiert SQLite-Datenbank
- SSL-Zertifikate: Generiert selbstsignierte Zertifikate
- Services: Konfiguriert Systemd, Nginx, Supervisor
- Firewall: Öffnet notwendige Ports
- Drucker: Trägt hardkodierte Drucker in DB ein
3. Manuelle Drucker-Konfiguration (optional)
Falls die Drucker separat konfiguriert werden sollen:
cd /home/user/Projektarbeit-MYP/backend/app
source ../venv/bin/activate
python setup_drucker_db.py
Konfiguration
Pfadstruktur
/home/user/Projektarbeit-MYP/
├── backend/
│ ├── app/
│ │ ├── database/
│ │ │ └── myp.db
│ │ ├── logs/
│ │ │ ├── app/
│ │ │ ├── auth/
│ │ │ ├── jobs/
│ │ │ ├── printers/
│ │ │ ├── scheduler/
│ │ │ └── errors/
│ │ └── ...
│ ├── certs/
│ │ ├── myp.crt
│ │ └── myp.key
│ ├── venv/
│ └── requirements.txt
└── frontend/
└── ssl/
├── myp.crt
└── myp.key
Hardkodierte Drucker
Die folgenden Drucker werden automatisch konfiguriert:
Name | IP-Adresse | Status |
---|---|---|
Printer 1 | 192.168.0.100 | Available |
Printer 2 | 192.168.0.101 | Available |
Printer 3 | 192.168.0.102 | Available |
Printer 4 | 192.168.0.103 | Available |
Printer 5 | 192.168.0.104 | Available |
Printer 6 | 192.168.0.106 | Available |
Standard-Anmeldedaten
- E-Mail: admin@mercedes-benz.com
- Passwort: 744563017196A
Services
Systemd Service
# Service-Status prüfen
sudo systemctl status myp-platform
# Service neu starten
sudo systemctl restart myp-platform
# Service aktivieren/deaktivieren
sudo systemctl enable myp-platform
sudo systemctl disable myp-platform
# Logs anzeigen
sudo journalctl -u myp-platform -f
Nginx
# Nginx-Status prüfen
sudo systemctl status nginx
# Konfiguration testen
sudo nginx -t
# Nginx neu laden
sudo systemctl reload nginx
Supervisor
# Supervisor-Status
sudo supervisorctl status
# Service neu starten
sudo supervisorctl restart myp-platform
# Logs anzeigen
sudo supervisorctl tail -f myp-platform
Zugriff
URLs
- HTTPS: https://raspberrypi
- HTTPS (IP): https://[IP-ADRESSE]
- HTTP: Automatische Weiterleitung zu HTTPS
SSL-Zertifikat
Das System verwendet selbstsignierte SSL-Zertifikate:
- Browser-Warnung beim ersten Zugriff ist normal
- Zertifikat manuell akzeptieren
- Für Produktionsumgebung: Echte Zertifikate verwenden
Wartung
Logs
# Anwendungs-Logs
tail -f /home/user/Projektarbeit-MYP/backend/app/logs/app/app.log
# System-Logs
sudo journalctl -u myp-platform -f
# Nginx-Logs
sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log
Datenbank-Backup
# Backup erstellen
cp /home/user/Projektarbeit-MYP/backend/app/database/myp.db \
/home/user/backup_$(date +%Y%m%d_%H%M%S).db
# Automatisches Backup (Crontab)
crontab -e
# Hinzufügen:
# 0 2 * * * cp /home/user/Projektarbeit-MYP/backend/app/database/myp.db /home/user/backup_$(date +\%Y\%m\%d).db
Updates
# Code aktualisieren
cd /home/user/Projektarbeit-MYP
git pull
# Python-Abhängigkeiten aktualisieren
source backend/venv/bin/activate
pip install -r backend/requirements.txt
# Service neu starten
sudo systemctl restart myp-platform
Troubleshooting
Häufige Probleme
Service startet nicht
# Logs prüfen
sudo journalctl -u myp-platform -n 50
# Manuell starten (Debug)
cd /home/user/Projektarbeit-MYP/backend/app
source ../venv/bin/activate
python app.py
SSL-Probleme
# Zertifikate neu generieren
cd /home/user/Projektarbeit-MYP/backend/app
source ../venv/bin/activate
python -c "from utils.ssl_manager import ssl_manager; ssl_manager.generate_mercedes_certificate()"
# Nginx neu starten
sudo systemctl restart nginx
Datenbank-Probleme
# Datenbank neu initialisieren
cd /home/user/Projektarbeit-MYP/backend/app
source ../venv/bin/activate
python -c "from models import init_database, create_initial_admin; init_database(); create_initial_admin()"
# Drucker neu einrichten
python setup_drucker_db.py
Port-Konflikte
# Verwendete Ports prüfen
sudo netstat -tlnp | grep :443
sudo netstat -tlnp | grep :80
# Prozesse beenden
sudo pkill -f "python app.py"
Performance-Optimierung
Systemressourcen
# RAM-Nutzung prüfen
free -h
# CPU-Nutzung prüfen
htop
# Festplatte prüfen
df -h
Log-Rotation
# Logrotate konfigurieren
sudo tee /etc/logrotate.d/myp-platform > /dev/null <<EOF
/home/user/Projektarbeit-MYP/backend/app/logs/*/*.log {
daily
missingok
rotate 7
compress
delaycompress
notifempty
copytruncate
}
EOF
Sicherheit
Firewall
# UFW-Status prüfen
sudo ufw status
# Zusätzliche Regeln
sudo ufw allow from 192.168.0.0/24 to any port 22
sudo ufw deny 22
SSL-Härtung
Für Produktionsumgebung:
- Echte SSL-Zertifikate verwenden (Let's Encrypt)
- HSTS aktivieren
- Security Headers konfigurieren
- Regelmäßige Updates
Backup-Strategie
- Tägliche Datenbank-Backups
- Wöchentliche Vollbackups
- Externe Speicherung
- Restore-Tests
Support
Kontakt
- E-Mail: admin@mercedes-benz.com
- Dokumentation: /home/user/Projektarbeit-MYP/docs/
Nützliche Befehle
# System-Informationen
hostnamectl
cat /etc/os-release
python3 --version
# Netzwerk-Informationen
ip addr show
hostname -I
# Service-Übersicht
systemctl list-units --type=service --state=running