Dokumentation
This commit is contained in:
41
README.md
41
README.md
@@ -32,10 +32,31 @@ terminiert TLS (Let's Encrypt) und leitet an den passenden Upstream weiter.
|
||||
Alles hängt unter `*.server.schooltech.ch`. Der Unterschied zwischen den
|
||||
Diensten ist nicht die Domain, sondern **wohin der Upstream zeigt**:
|
||||
|
||||

|
||||
<img src="doc/Architektur.png" width="900" alt="
|
||||
Internet (HTTPS :443 / HTTP :80)
|
||||
│
|
||||
┌────────────────────────────────────────────────┐
|
||||
│ nginx Reverse-Proxy (Container: appServer_PortalUI)
|
||||
│ ein vHost pro Subdomain *.server.schooltech.ch
|
||||
│ TLS-Terminierung (Let's Encrypt) · 80→443 Redirect
|
||||
└────────────────────────────────────────────────┘
|
||||
│
|
||||
┌───────────────┬───────────┼──────────────┬────────────────────┐
|
||||
▼ ▼ ▼ ▼
|
||||
server. rp5*. nextcloud. inf*/rp3*/tc*/robot*/fluidnc*
|
||||
schooltech.ch schooltech. schooltech. .server.schooltech.ch
|
||||
Portal-UI lokale Gerät im LAN über SSH-Tunnel-Hub
|
||||
(diese App) Container (direkte IP) appServer_TunnelHead
|
||||
│ │ │ │
|
||||
▼ ▼ ▼ ▼
|
||||
public/ appServer_ 192.168.0.210 appServer_TunnelHead (SSH-Reverse-Tunnels)
|
||||
index.html guacamole / ├─ 99xx InformatikWeb (inf*)
|
||||
+ Auth-API portainer ├─ 81xx RP3/SCARA (rp3*, fluidnc*)
|
||||
└─ 97xx ThinkCentre (tc*, robot*)
|
||||
">
|
||||
|
||||
> Diagramm-Quelle: [`doc/Architektur.svg`](doc/Architektur.svg) — auch als
|
||||
> [`doc/Architektur.png`](doc/Architektur.png) (für Viewer ohne SVG-Support).
|
||||
> Bild: [`doc/Architektur.png`](doc/Architektur.png) · Vektor-Quelle:
|
||||
> [`doc/Architektur.svg`](doc/Architektur.svg) (für PDF/beliebige Skalierung).
|
||||
|
||||
**Bausteine (Docker-Container, siehe `docker-compose.yaml`):**
|
||||
|
||||
@@ -74,11 +95,19 @@ Ruft man die nackte Domain `server.schooltech.ch` auf, erscheint die
|
||||
|
||||
**Ablauf aus Nutzersicht:**
|
||||
|
||||

|
||||
<img src="doc/Portal.png" width="720" alt="
|
||||
┌──────────────────────────────────────────────────────────────┐
|
||||
│ schooltech [ Control GamePad ][ Guacamole ][ Simulation ]… [Logout] │ ← Navigationsleiste
|
||||
├──────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ « ausgewählter Dienst im iFrame » │
|
||||
│ │
|
||||
└──────────────────────────────────────────────────────────────┘
|
||||
">
|
||||
|
||||
*Oben die Navigationsleiste mit Logo und Dienst-Buttons, darunter der gewählte
|
||||
Dienst im iFrame. (Quelle: [`doc/Portal.svg`](doc/Portal.svg) — auch als
|
||||
[`doc/Portal.png`](doc/Portal.png) und [`doc/Portal.pdf`](doc/Portal.pdf).)*
|
||||
Dienst im iFrame. Bild: [`doc/Portal.png`](doc/Portal.png) · Quellen:
|
||||
[`doc/Portal.svg`](doc/Portal.svg), [`doc/Portal.pdf`](doc/Portal.pdf).*
|
||||
|
||||
1. Seite öffnen → ist man nicht eingeloggt, zeigt der Button **„Login“**.
|
||||
2. Login (User/Passwort) → der Auth-Service setzt ein Session-Cookie für die
|
||||
|
||||
Reference in New Issue
Block a user