Diese Richtlinie definiert, wie die aidX AG die Infrastruktur, Dienste und Softwareabhängigkeiten von mentalhealthGPT.ch verwaltet, um Sicherheit, Verfügbarkeit und Schweizer Datensouveränität zu gewährleisten.
1. Infrastrukturübersicht
- Gesamte Produktionsinfrastruktur ausschliesslich in der Schweiz gehostet (Infomaniak Network SA, Genf)
- Privates internes Netzwerk — kein direkter öffentlicher Zugriff auf Backend-Dienste
- Öffentlicher Zugriff nur über nginx Reverse Proxy auf Ports 80/443 mit TLS 1.2+
- Container-basiertes Deployment mit Docker und Docker Compose
- Keine US-Hyperscale-Cloud-Anbieter (AWS, Azure, GCP)
2. Infrastrukturkomponenten
nginx — Reverse Proxy und TLS-Terminierung; Konfiguration in Git verwaltet, Deployment via CI/CD.
Node.js API — Backend-Dienst; Dockerisiert, bei jedem Deployment neu aufgebaut.
PostgreSQL — Primäre Datenbank; eingeschränkter Zugriff, Zugangsdaten ausschliesslich über Vault.
Redis — Session-Pairing und Caching; passwortgeschützt, nur im internen Netzwerk.
MinIO — S3-kompatibler Objektspeicher; in der Schweiz gehostet, Zugangsdaten über Vault.
HashiCorp Vault — HA-Cluster mit Transit Auto-Unseal; alle Secrets werden hier zentral verwaltet.
3. Änderungsmanagement
- Alle Infrastrukturänderungen vor der Anwendung in Git gespeichert (Git-First-Prinzip)
- Keine direkten Bearbeitungen von Produktionskonfigurationsdateien — nur via Git + CI/CD
- Staging-Umgebung validiert alle Änderungen vor dem Produktions-Deployment
- Produktions-Deployments erfordern manuelle Genehmigung in der GitLab CI/CD-Pipeline
- Notfall-Hotfixes werden unmittelbar nach Anwendung im Git nachgeführt
4. Secrets & Zugangsdatenverwaltung
- Alle Zugangsdaten ausschliesslich über HashiCorp Vault (KV v2) verwaltet
- Separate Vault KV-Mounts für Staging (
staging-kv/) und Produktion (kv/)
- Jeder Dienst hat eine dedizierte Vault-Richtlinie mit minimal erforderlichen Berechtigungen
- Secrets beim Container-Start in In-Memory-Tmpfs gerendert — nie auf Disk geschrieben
- Bootstrap-Tokens für Vault werden manuell verwaltet — nie in Git-Repositories gespeichert
5. Anwendungs-Abhängigkeitsverwaltung
- Ausschliesslich Node.js LTS-Versionen — Aktualisierung bei neuen LTS-Releases
- npm audit bei jedem CI/CD-Build — hohe/kritische Befunde blockieren das Deployment
- Minimales Abhängigkeitsprinzip — kein Paket ohne klare Begründung und Review
- Alle neuen Abhängigkeiten auf Lizenzkompatibilität und bekannte Schwachstellen geprüft
package-lock.json in Git gespeichert für reproduzierbare Builds
6. Infrastruktur-Abhängigkeitsverwaltung
- Docker-Basis-Images auf spezifische Versionen festgelegt — regelmässig überprüft und aktualisiert
- Docker-Images bei jedem Deployment neu aufgebaut (keine Wiederverwendung vorheriger Layer)
- Betriebssystem-Sicherheitsupdates werden regelmässig auf allen Servern eingespielt
- Drittanbieter-Dienste (Zoom, Stripe, Infomaniak AI) auf Deprecation-Hinweise überwacht
7. Verfügbarkeit & Wiederherstellung
- Monitoring via Prometheus + Grafana mit Alarmierung bei Verfügbarkeitsmetriken
- Datenbank-Backups verschlüsselt und innerhalb der Schweizer Jurisdiktion aufbewahrt
- Container-Restart-Richtlinien gewährleisten automatische Wiederherstellung bei transienten Fehlern
- Vault HA-Cluster stellt sicher, dass Secret-Zugriff kein Single Point of Failure ist
8. Drittanbieter-Integrationsverwaltung
- Zoom: OAuth 2.0 PKCE, Tokens verschlüsselt gespeichert, Webhook-Signaturen verifiziert (HMAC-SHA256)
- Stripe: PCI DSS Level 1 Zahlungsdienstleister — keine Kartendaten auf aidX-Systemen
- Infomaniak AI: Schweizer LLM-API — keine klinischen Daten in Inference-Anfragen
- Alle API-Zugangsdaten in HashiCorp Vault — nie im Quellcode
9. Kontakt
hello@aidx.ch
aidX AG
Bachtelstrasse 57, 8330 Pfäffikon ZH, Schweiz