Architectuur overzicht
Diagram
Internet
│
▼
┌─────────────┐
│ Caddy │ Reverse proxy + automatisch HTTPS (Let's Encrypt)
│ (443/80) │
└──────┬──────┘
│
├── control.nexonsolutions.be → control-plane-web (React/Vite)
├── api.control.* → control-plane-api (FastAPI)
├── portal.nexonsolutions.be → portal (vanilla JS)
├── auth.nexonsolutions.be → Keycloak 26
├── drive.nexonsolutions.be → Nextcloud
├── grafana.nexonsolutions.be → Grafana
└── alerts.nexonsolutions.be → Alertmanager
┌──────────────────────────────────────────────┐
│ Docker Compose — nexon-orbit-public │
│ │
│ control-plane-api ←→ control-plane-db │
│ admin-api ←→ admin-db │
│ keycloak ←→ keycloak-db │
│ drive (Nextcloud) ←→ drive-db │
│ prometheus ← promtail ← alle containers │
│ grafana ← prometheus + loki │
│ alertmanager ← prometheus │
└──────────────────────────────────────────────┘
Twee API-lagen
| API | Tech | Verantwoordelijkheid |
|---|---|---|
| control-plane-api | FastAPI (Python) | Tenant management, DNS, packages, billing |
| admin-api | Fastify (Node.js) | Orbit gebruikers, Drive sync, identiteiten |
De twee API's communiceren intern via x-internal-secret.