feat: Implement SSL support and kiosk mode enhancements
- Added SSL configuration to the backend, including self-signed certificate generation and management. - Updated `setup_myp.sh` to create SSL certificates during installation. - Enhanced `app.py` to support SSL context for secure communication. - Introduced a new SSL management menu in the setup script for easier certificate handling. - Updated frontend API calls to use HTTPS for secure data transmission. - Implemented kiosk mode features, including automatic browser launch with SSL support. - Improved documentation in `SUMMARY.md` to reflect new features and network topology changes.
This commit is contained in:
85
SUMMARY.md
85
SUMMARY.md
@@ -10,6 +10,8 @@ Die MYP-Plattform (My Young Printer) ist ein Verwaltungssystem für 3D-Drucker m
|
||||
- Offline-Fähigkeit durch Service Worker Integration
|
||||
- REST-API für Frontend und externe Dienste
|
||||
- Automatisierte Auftrags-Planung und -Ausführung via Scheduler
|
||||
- Verschlüsselte Kommunikation über HTTPS mit selbstsignierten Zertifikaten
|
||||
- Kiosk-Modus für Informationsdisplays und öffentliche Terminals
|
||||
|
||||
Das Backend basiert auf Flask (Python) und nutzt eine SQLite-Datenbank für die Datenspeicherung.
|
||||
|
||||
@@ -24,22 +26,40 @@ Die MYP-Plattform setzt auf eine verteilte Netzwerk-Architektur:
|
||||
- **3D-Drucker**: Werden als Netzwerkgeräte mit festen IP-Adressen konfiguriert
|
||||
- **Frontend**: Als Web-App mit Offline-Funktionalität konzipiert
|
||||
- **PWA-Funktionalität**: Service Worker für Offline-Betrieb und Cache-Management
|
||||
- **Kiosk-Displays**: Raspberry Pi mit Chrome im Kiosk-Modus
|
||||
|
||||
### Netzwerk-Topologie
|
||||
|
||||
```
|
||||
[Frontend/PWA] <-- HTTP/REST --> [Flask-Backend] <-- PyP110-Lib --> [Smart-Plugs]
|
||||
^ ^ |
|
||||
| | v
|
||||
+------ PWA Offline Cache -------+ [3D-Drucker]
|
||||
┌──────────────────┐
|
||||
│ Command Center │
|
||||
│ (192.168.0.1) │
|
||||
└──────────┬───────┘
|
||||
│
|
||||
▼
|
||||
┌───────────────┐ ┌─────────────────────┐ ┌──────────────┐
|
||||
│ Frontend/PWA │◄────►│ Flask-Backend │◄────►│ Smart-Plugs │
|
||||
│(192.168.0.105)│ │ (192.168.0.105) │ │(192.168.0.1xx)│
|
||||
└───────┬───────┘ └─────────┬───────────┘ └──────┬────────┘
|
||||
│ │ │
|
||||
│ │ ▼
|
||||
┌───────▼───────┐ │ ┌────────────────┐
|
||||
│ Kiosk-Mode │ │ │ 3D-Drucker │
|
||||
│ (10.0.0.1-10) │ │ │(192.168.0.1xx) │
|
||||
└───────────────┘ ▼ └────────────────┘
|
||||
┌─────────────────────┐
|
||||
│ Ad-hoc Pi-Netzwerk │
|
||||
│ (10.0.0.x/24) │
|
||||
└─────────────────────┘
|
||||
```
|
||||
|
||||
### Kommunikationsprotokolle
|
||||
|
||||
- **HTTP/REST**: Zwischen Frontend und Backend
|
||||
- **HTTPS/REST**: Zwischen Frontend und Backend (Port 5000)
|
||||
- **JSON**: Standardformat für Datenaustausch
|
||||
- **Tapo-Protokoll**: Für Smart-Plug-Steuerung via PyP110-Bibliothek
|
||||
- **SQLite**: Lokale Datenbankanbindung
|
||||
- **TLS 1.2/1.3**: Verschlüsselte Kommunikation mit selbstsignierten Zertifikaten
|
||||
|
||||
### Vernetzungs-Features
|
||||
|
||||
@@ -47,6 +67,8 @@ Die MYP-Plattform setzt auf eine verteilte Netzwerk-Architektur:
|
||||
- SmartPlug-Integration für Fernsteuerung der Stromversorgung
|
||||
- Offline-Betriebsmodus mit synchronisierenden Service Workern
|
||||
- Automatische Erkennung der Drucker-Status via Netzwerk-Polling
|
||||
- Kiosk-Modus mit automatischem Start nach Systemneustart
|
||||
- Command Center für zentrale Verwaltung aller Komponenten
|
||||
|
||||
## 3. Hauptkomponenten des Backends
|
||||
|
||||
@@ -64,6 +86,7 @@ Das Backend stellt eine umfassende REST-API bereit:
|
||||
- **Printer Management**: Druckerstatus, Steuerung
|
||||
- **Job Management**: Auftragsplanung, -verwaltung und -überwachung
|
||||
- **Stats API**: Statistiken und Auswertungen
|
||||
- **Kiosk API**: Steuerung der Kiosk-Displays
|
||||
|
||||
### SmartPlug-Integration
|
||||
|
||||
@@ -71,6 +94,13 @@ Das Backend stellt eine umfassende REST-API bereit:
|
||||
- Automatisierte Steuerung der Stromversorgung basierend auf Jobplanung
|
||||
- Status-Monitoring und Fehlerbehandlung
|
||||
|
||||
### SSL/HTTPS-Implementierung
|
||||
|
||||
- Selbstsignierte Zertifikate für verschlüsselte Kommunikation
|
||||
- Automatische Zertifikatsgenerierung während der Installation
|
||||
- Konfigurierbare Zertifikatslaufzeit (Standard: 10 Jahre)
|
||||
- Prüfwerkzeuge für Zertifikatsstatus und -gültigkeit
|
||||
|
||||
## 4. Datenbankmodell & Scheduler-Logik
|
||||
|
||||
### Datenbankmodelle
|
||||
@@ -111,6 +141,9 @@ Der BackgroundTaskScheduler bietet:
|
||||
| /api/scheduler/status | GET | Scheduler-Status | Ja |
|
||||
| /api/scheduler/start | POST | Scheduler starten | Ja, Admin |
|
||||
| /api/scheduler/stop | POST | Scheduler stoppen | Ja, Admin |
|
||||
| /api/kiosk/status | GET | Kiosk-Status | Ja |
|
||||
| /api/kiosk/activate | POST | Kiosk aktivieren | Ja, Admin |
|
||||
| /api/kiosk/deactivate | POST | Kiosk deaktivieren | Ja, Admin |
|
||||
| /auth/login | POST | Anmelden | Nein |
|
||||
| /auth/logout | GET/POST | Abmelden | Ja |
|
||||
|
||||
@@ -125,6 +158,7 @@ Der BackgroundTaskScheduler bietet:
|
||||
|
||||
### Netzwerksicherheit
|
||||
|
||||
- HTTPS mit selbstsignierten TLS-Zertifikaten
|
||||
- CORS-Konfiguration für sichere Cross-Origin-Requests
|
||||
- Sicherheitsheader im Response (X-Content-Type-Options, X-Frame-Options)
|
||||
- Keine sensiblen Daten in URLs oder Query-Parametern
|
||||
@@ -137,17 +171,57 @@ Der BackgroundTaskScheduler bietet:
|
||||
|
||||
## 7. Build- & Deployment-Ablauf
|
||||
|
||||
### Installationsprozess
|
||||
|
||||
Die Installation der MYP-Plattform erfolgt über verschiedene Shell-Skripte:
|
||||
|
||||
- **setup_myp.sh**: Hauptinstallationsskript (Command Center)
|
||||
- Standardinstallation mit HTTPS-Unterstützung
|
||||
- Kiosk-Modus-Installation (gehärtete Variante)
|
||||
- Netzwerk- und DNS-Konfiguration
|
||||
- Systemüberwachung und Logging
|
||||
|
||||
- **create_ssl_cert.sh**: Generiert selbstsignierte Zertifikate
|
||||
- Unterstützt Multiple-SAN-Entries (Hostname, IP-Adressen)
|
||||
- Konfigurierbare Zertifikatslaufzeit
|
||||
- Automatische Fehlerbehandlung
|
||||
|
||||
- **ssl_check.sh**: Prüft SSL-Zertifikatsstatus
|
||||
- Validiert Gültigkeitsdauer
|
||||
- Zeigt Fingerprint und Subject-Details
|
||||
- Warnt vor bald ablaufenden Zertifikaten
|
||||
|
||||
### Backend-Deployment
|
||||
|
||||
- Python 3.11 venv-Umgebung
|
||||
- Konfigurierbare Entwicklungs- und Produktionsumgebungen
|
||||
- Log-Rotation und strukturierte Logging-Hierarchie
|
||||
- SSL/TLS-Unterstützung mit automatischer Zertifikatsgenerierung
|
||||
|
||||
### Kiosk-Modus
|
||||
|
||||
- Basiert auf Raspberry Pi mit Chromium Browser
|
||||
- Automatischer Start im Vollbildmodus nach Boot
|
||||
- Deaktivierung von Fehlerdialogen und Warnungen
|
||||
- Integrierte Überwachung und Watchdog-Funktionalität
|
||||
- Spezielle Konfiguration für öffentliche Informationsdisplays
|
||||
- Ignoriert SSL-Zertifikatswarnungen für selbstsignierte Zertifikate
|
||||
|
||||
### Command Center
|
||||
|
||||
- Zentrales Verwaltungstool mit CLI-Interface
|
||||
- Integrierte Systemdiagnose und -überwachung
|
||||
- Einfache Verwaltung von SSL-Zertifikaten
|
||||
- Fernsteuerung von Kiosk-Displays
|
||||
- Netzwerk- und IP-Konfiguration
|
||||
- Dienst-Management (Start/Stop/Neustart)
|
||||
|
||||
### Frontend-Integration
|
||||
|
||||
- Tailwind CSS für responsive UI
|
||||
- CLI-Befehle für Tailwind-Kompilierung
|
||||
- Service Worker für PWA-Funktionalität
|
||||
- HTTPS-Unterstützung mit Proxy-Konfiguration
|
||||
|
||||
### Systemd-Integration
|
||||
|
||||
@@ -169,6 +243,7 @@ Der BackgroundTaskScheduler bietet:
|
||||
- OAuth2-Integration für externe Authentifizierungsquellen
|
||||
- Zwei-Faktor-Authentifizierung
|
||||
- Zertifikatsbasierte Geräteauthentifizierung für SmartPlugs
|
||||
- Letsencrypt-Integration für vertrauenswürdige Zertifikate
|
||||
|
||||
### Skalierbarkeit
|
||||
|
||||
|
Reference in New Issue
Block a user