83 lines
4.2 KiB
Plaintext
83 lines
4.2 KiB
Plaintext
graph TB
|
|
%% Stil-Definitionen
|
|
classDef backend fill:#1e40af,stroke:#1e3a8a,color:#fff,stroke-width:3px
|
|
classDef frontend fill:#10b981,stroke:#059669,color:#fff,stroke-width:3px
|
|
classDef database fill:#f59e0b,stroke:#d97706,color:#fff,stroke-width:3px
|
|
classDef hardware fill:#ef4444,stroke:#dc2626,color:#fff,stroke-width:3px
|
|
classDef network fill:#8b5cf6,stroke:#7c3aed,color:#fff,stroke-width:3px
|
|
classDef client fill:#06b6d4,stroke:#0891b2,color:#fff,stroke-width:3px
|
|
classDef security fill:#e11d48,stroke:#be123c,color:#fff,stroke-width:3px
|
|
classDef note fill:#f3f4f6,stroke:#d1d5db,color:#000,stroke-width:1px
|
|
|
|
%% Netzwerk-Infrastruktur
|
|
subgraph MB["Mercedes-Benz Netzwerk"]
|
|
subgraph LAN["Lokales WLAN 192.168.0.0/24"]
|
|
%% Backend-Server
|
|
BACKEND["Backend-Server<br/>Flask REST-API<br/>IP: 192.168.0.105<br/>Ports: 443, 8080<br/>HTTPS mit SSL"]:::backend
|
|
|
|
%% Frontend-Server
|
|
FRONTEND["Frontend-Server<br/>Next.js PWA<br/>Domain: m040tbaraspi001<br/>Ports: 3000, 443<br/>HTTPS mit Mercedes SSL"]:::frontend
|
|
|
|
%% Datenbank
|
|
DB[("SQLite-Datenbank<br/>WAL-Modus<br/>myp.db<br/>Optimiert für Pi")]:::database
|
|
|
|
%% Raspberry Pi Kiosk
|
|
KIOSK["Raspberry Pi<br/>Kiosk-Modus<br/>Touch-Interface<br/>Offline-Betrieb"]:::client
|
|
|
|
%% Smart-Plug Netzwerk
|
|
subgraph PLUGNET["Smart-Plug Netzwerk"]
|
|
PLUG1["TP-Link Tapo P110<br/><strong>IP: 192.168.0.100</strong><br/>Drucker 1"]:::hardware
|
|
PLUG2["TP-Link Tapo P110<br/><strong>IP: 192.168.0.101</strong><br/>Drucker 2"]:::hardware
|
|
PLUG3["TP-Link Tapo P110<br/><strong>IP: 192.168.0.102</strong><br/>Drucker 3"]:::hardware
|
|
PLUG4["TP-Link Tapo P110<br/><strong>IP: 192.168.0.103</strong><br/>Drucker 4"]:::hardware
|
|
PLUG5["TP-Link Tapo P110<br/><strong>IP: 192.168.0.104</strong><br/>Drucker 5"]:::hardware
|
|
PLUG6["TP-Link Tapo P110<br/><strong>IP: 192.168.0.106</strong><br/>Drucker 6"]:::hardware
|
|
end
|
|
|
|
%% 3D-Drucker
|
|
subgraph PRINTERS["3D-Drucker"]
|
|
PRINTER1["<strong>3D-Drucker 1</strong><br/>Stromversorgung über Plug"]:::hardware
|
|
PRINTER2["<strong>3D-Drucker 2</strong><br/>Stromversorgung über Plug"]:::hardware
|
|
PRINTER3["<strong>3D-Drucker 3</strong><br/>Stromversorgung über Plug"]:::hardware
|
|
PRINTER4["<strong>3D-Drucker 4</strong><br/>Stromversorgung über Plug"]:::hardware
|
|
PRINTER5["<strong>3D-Drucker 5</strong><br/>Stromversorgung über Plug"]:::hardware
|
|
PRINTER6["<strong>3D-Drucker 6</strong><br/>Stromversorgung über Plug"]:::hardware
|
|
end
|
|
end
|
|
|
|
%% Client-Systeme
|
|
CLIENT1["<strong>Browser-Clients</strong><br/>Desktop/Mobile<br/>PWA-Support"]:::client
|
|
CLIENT2["<strong>Admin-Dashboard</strong><br/>HTTPS-Zugriff"]:::client
|
|
CLIENT3["<strong>Gast-Zugriff</strong><br/>OTP-Authentifizierung"]:::client
|
|
end
|
|
|
|
%% Verbindungen - API-Kommunikation
|
|
CLIENT1 -.->|"HTTPS/443"| FRONTEND
|
|
CLIENT2 -.->|"HTTPS/443"| FRONTEND
|
|
CLIENT3 -.->|"HTTPS/443"| FRONTEND
|
|
FRONTEND -->|"REST-API<br/>HTTPS/443"| BACKEND
|
|
KIOSK -->|"Local API"| BACKEND
|
|
|
|
%% Verbindungen - Datenbank
|
|
BACKEND -->|"SQLAlchemy<br/>Thread-Pool"| DB
|
|
|
|
%% Verbindungen - Hardware-Steuerung
|
|
BACKEND -->|"Tapo-API<br/>WLAN"| PLUG1
|
|
BACKEND -->|"Tapo-API<br/>WLAN"| PLUG2
|
|
BACKEND -->|"Tapo-API<br/>WLAN"| PLUG3
|
|
BACKEND -->|"Tapo-API<br/>WLAN"| PLUG4
|
|
BACKEND -->|"Tapo-API<br/>WLAN"| PLUG5
|
|
BACKEND -->|"Tapo-API<br/>WLAN"| PLUG6
|
|
|
|
%% Verbindungen - Stromversorgung
|
|
PLUG1 -.->|"230V AC"| PRINTER1
|
|
PLUG2 -.->|"230V AC"| PRINTER2
|
|
PLUG3 -.->|"230V AC"| PRINTER3
|
|
PLUG4 -.->|"230V AC"| PRINTER4
|
|
PLUG5 -.->|"230V AC"| PRINTER5
|
|
PLUG6 -.->|"230V AC"| PRINTER6
|
|
|
|
%% Notizen
|
|
subgraph INFO["System-Informationen"]
|
|
NOTE1["<br/><strong>Scheduler-System:</strong><br/>Automatische Drucker-, Hintergrundaufgaben- und Zeitsteuerung"]:::note
|
|
end |