Skip to content
markdown
---
title: Voraussetzungen
source_sha: "55caeb3d26d68ae52b19ffa3819707747f2d590c9a2ab5532e477c401d1ec20d"
---

# Voraussetzungen

Dieser Leitfaden behandelt die Voraussetzungen für das Deployment der Swiss AI Hub Plattform.

::: tip Wählen Sie Ihren Deployment-Typ
Die Voraussetzungen unterscheiden sich je nach Ihrem Deployment-Typ:

- **Produktions-Deployment**: Deployment auf einem Server mit einem echten Domainnamen und automatischen SSL-Zertifikaten
- **Lokales Deployment**: Ausführung auf Ihrem lokalen Rechner mit `127.0.0.1.nip.io` und selbstsignierten Zertifikaten

Folgen Sie nur den Abschnitten, die für Ihren Deployment-Typ relevant sind.
:::

## Allgemeine Anforderungen (Alle Deployments)

Diese Anforderungen gelten sowohl für Produktions- als auch für lokale Deployments.

### Systemanforderungen

#### Mindestanforderungen

- **CPU**: 8 Kerne
- **RAM**: 32 GB
- **Speicher**: 200 GB freier Speicherplatz
- **Netzwerk**: Stabile Internetverbindung für Docker-Image-Downloads

#### Empfohlene Anforderungen

- **CPU**: 12+ Kerne
- **RAM**: 48+ GB
- **Speicher**: 300+ GB SSD für verbesserte Datenbankleistung
- **Netzwerk**: Hochbandbreitenverbindung für eine schnellere Ersteinrichtung

::: warning
Die Plattform betreibt mehrere Services gleichzeitig (Datenbanken, Vektorspeicher, LLM-Proxys, Web-Interfaces, Verarbeitungs-Engines). Systeme unterhalb der Mindestanforderungen werden Service-Ausfälle oder eine verminderte Leistung aufweisen.
:::

### Softwareanforderungen

#### Betriebssystem

- Linux (Ubuntu 20.04+ empfohlen und getestet)
- Jede Docker-kompatible Linux-Distribution

#### Erforderliche Software

- **Docker**: Neueste stabile Version
- **Docker Compose**: v2.0 oder höher
- **sudo/root-Zugriff**: Erforderlich für Installation und Konfiguration

#### Netzwerkkonfiguration

- **Offene Ports**: 80 (HTTP), 443 (HTTPS)
- **Internetzugang**: Erforderlich für Docker-Image-Downloads und Updates

#### Verifizierung

Testen Sie Ihre Docker-Installation:

```bash
docker --version
docker compose --version
docker run hello-world

Alle Befehle müssen erfolgreich abgeschlossen werden.

Einrichtung des Authentifizierungs-Providers

Die Plattform erfordert einen OAuth2/OpenID Connect-Identitätsprovider für Produktions- und lokale Deployments. Dieser Leitfaden dokumentiert die Einrichtung von Azure Entra ID. Andere Provider (Google, Okta, Auth0) können nach ähnlichen Mustern konfiguriert werden.

Einrichtung von Azure Entra ID

Führen Sie die folgenden Schritte im Azure-Portal aus, um die Authentifizierung vorzubereiten:

Schritt 1: App-Registrierung erstellen

  1. Navigieren Sie zu Azure-PortalAzure Active DirectoryApp-Registrierungen
  2. Klicken Sie auf "Neue Registrierung"
  3. Konfigurieren Sie die Registrierung:
    • Name: Swiss AI Hub (oder die Namenskonvention Ihrer Organisation)
    • Unterstützte Kontotypen: Wählen Sie basierend auf den Anforderungen
      • Konten nur in diesem Organisationsverzeichnis (Single-Tenant – empfohlen für die meisten Deployments)
    • Umleitungs-URI: Leer lassen (wird in Schritt 5 konfiguriert)
  4. Klicken Sie auf "Registrieren"

Schritt 2: Token-Version konfigurieren

Die Plattform erfordert Zugriffs-Token-Version 2 für eine ordnungsgemäße Authentifizierung.

  1. Navigieren Sie zu "Manifest"
  2. Suchen Sie die Eigenschaft requestedAccessTokenVersion
  3. Ändern Sie den Wert von null oder 1 zu 2:
    json
    "requestedAccessTokenVersion": 2
  4. Klicken Sie oben im Manifest-Editor auf "Speichern"

WARNING

Zugriffs-Token-Version 2 ist erforderlich, damit die Plattform ordnungsgemäß funktioniert. Version 1-Token werden nicht unterstützt und führen zu Authentifizierungsfehlern.

Schritt 3: API-Berechtigungen konfigurieren

  1. Navigieren Sie zu "API-Berechtigungen""Berechtigung hinzufügen"
  2. Wählen Sie "Microsoft Graph""Delegierte Berechtigungen"
  3. Fügen Sie die folgenden Berechtigungen hinzu:
    • openid - Erforderlich für OpenID Connect-Authentifizierung
    • profile - Erforderlich für grundlegende Benutzerprofilinformationen
    • email - Erforderlich für E-Mail-Adresse
    • offline_access - Erforderlich für Refresh-Tokens
    • User.Read - Erforderlich zum Lesen von Benutzerprofilen
  4. Klicken Sie auf "Administratoreinwilligung für [Ihre Organisation] erteilen"
  5. Vergewissern Sie sich, dass alle Berechtigungen den Status "Erteilt für [Ihre Organisation]" anzeigen

TIP

Die Plattform verwaltet Rollen und Benutzerprofile lokal – es sind keine Microsoft Graph API Anwendungsberechtigungen (wie User.ReadBasic.All, Directory.Read.All oder ProfilePhoto.Read.All) erforderlich. Für die Authentifizierung werden nur standardmäßige OIDC delegierte Berechtigungen benötigt.

Schritt 4: Client-Secret erstellen

  1. Navigieren Sie zu "Zertifikate & Geheimnisse""Client-Geheimnisse""Neues Client-Geheimnis"
  2. Konfigurieren Sie das Geheimnis:
    • Beschreibung: Geben Sie einen aussagekräftigen Namen ein (z.B. Swiss AI Hub Secret)
    • Gültigkeitsdauer: Wählen Sie eine Gültigkeitsdauer aus (12-24 Monate empfohlen)
  3. Klicken Sie auf "Hinzufügen"
  4. Kopieren Sie den Secret-Wert sofort an einen sicheren Ort
  5. Notieren Sie diesen Wert als [CLIENT_SECRET] für die Deployment-Konfiguration

DANGER

Der Client-Secret-Wert wird nur einmal direkt nach der Erstellung angezeigt. Geht der Wert verloren, muss ein neues Geheimnis erstellt werden. Speichern Sie ihn in einem Passwort-Manager oder einem sicheren Tresor.

Schritt 5: App-Rollen konfigurieren (optional)

TIP

App-Rollen in Azure Entra ID sind für die Swiss AI Hub Plattform optional. Plattformrollen (AIHubAdmin, AIHubUser) werden lokal über die Admin-Oberfläche verwaltet und nicht vom Identitätsprovider synchronisiert. Diese Azure-App-Rollen werden nur benötigt, wenn Sie den Zugriff auf integrierte Services (Dagster, SeaweedFS, Attu) steuern möchten, die ihre eigenen OAuth2-Flows verwenden.

Erstellen Sie vier App-Rollen nach diesem Prozess:

  1. Navigieren Sie zu "App-Rollen""App-Rolle erstellen"
  2. Erstellen Sie jede der folgenden Rollen:

Administrator-Rolle:

  • Anzeigename: AIHubAdmin
  • Zulässige Mitgliedertypen: Benutzer/Gruppen
  • Wert: AIHubAdmin
  • Beschreibung: Administratorzugriff auf die Swiss AI Hub Plattform

Benutzer-Rolle:

  • Anzeigename: AIHubUser
  • Zulässige Mitgliedertypen: Benutzer/Gruppen
  • Wert: AIHubUser
  • Beschreibung: Standard-Benutzerzugriff auf die Swiss AI Hub Plattform

Entwickler-Rolle:

  • Anzeigename: AIHubDeveloper
  • Zulässige Mitgliedertypen: Benutzer/Gruppen
  • Wert: AIHubDeveloper
  • Beschreibung: Entwicklerzugriff auf Swiss AI Hub Plattform-Services

Systemadministrator-Rolle:

  • Anzeigename: AIHubSysAdmin
  • Zulässige Mitgliedertypen: Benutzer/Gruppen
  • Wert: AIHubSysAdmin
  • Beschreibung: Systemadministratorzugriff auf Infrastruktur-Tools (Dagster, SeaweedFS, Attu)

TIP

Die AIHubSysAdmin-Rolle ist erforderlich, um auf das Dagster Pipeline-Orchestrierungs-Dashboard, die SeaweedFS Data Lake-Konsole unter datalake.${DOMAIN} und die Attu Milvus Admin-Benutzeroberfläche zuzugreifen. Benutzer ohne diese Rolle können weiterhin die Haupt-Swiss AI Hub-Oberfläche und OpenWebUI verwenden.

Schritt 6: SPA-Umleitungs-URIs konfigurieren

Single-Page Application (SPA) Umleitungs-URIs sind für die Haupt-Web-Oberfläche mit mehrsprachiger Unterstützung erforderlich.

  1. Navigieren Sie zu "Authentifizierung""Plattform hinzufügen""Einzelseitenanwendung"

  2. Fügen Sie Umleitungs-URIs basierend auf Ihrem Deployment-Typ hinzu:

    Für die Produktion: Ersetzen Sie your-domain.com durch Ihre tatsächliche Domain

    https://your-domain.com/de/auth/callback
    https://your-domain.com/en/auth/callback
    https://your-domain.com/it/auth/callback
    https://your-domain.com/fr/auth/callback

    Für lokales Deployment: Verwenden Sie 127.0.0.1.nip.io

    https://127.0.0.1.nip.io/de/auth/callback
    https://127.0.0.1.nip.io/en/auth/callback
    https://127.0.0.1.nip.io/it/auth/callback
    https://127.0.0.1.nip.io/fr/auth/callback

    TIP

Sie können sowohl Produktions- als auch lokale URIs für Testzwecke zur selben App-Registrierung hinzufügen. :::

  1. Konfigurieren Sie die Token-Einstellungen:
    • Aktivieren Sie Access-Tokens (für implizite Flows verwendet)
    • Aktivieren Sie ID-Tokens (für implizite Flows verwendet)
  2. Klicken Sie auf "Konfigurieren"

Schritt 7: Umleitungs-URIs für Webanwendungen konfigurieren

Umleitungs-URIs für Webanwendungen sind für integrierte Services (OpenWebUI, Dagster, Data Lake) erforderlich.

  1. Navigieren Sie zu "Authentifizierung""Plattform hinzufügen""Web"

  2. Fügen Sie Umleitungs-URIs basierend auf Ihrem Deployment-Typ hinzu:

    Für die Produktion: Ersetzen Sie your-domain.com durch Ihre tatsächliche Domain

    https://openwebui.your-domain.com/oauth/oidc/callback
    https://dagster.your-domain.com/oauth2/callback
    https://datalake.your-domain.com/oauth2/callback
    https://attu.your-domain.com/oauth2/callback

    Für lokales Deployment: Verwenden Sie 127.0.0.1.nip.io

    https://openwebui.127.0.0.1.nip.io/oauth/oidc/callback
    https://dagster.127.0.0.1.nip.io/oauth2/callback
    https://datalake.127.0.0.1.nip.io/oauth2/callback
    https://attu.127.0.0.1.nip.io/oauth2/callback
  3. Konfigurieren Sie die Token-Einstellungen:

    • Aktivieren Sie ID-Tokens (für hybride Flows verwendet)
  4. Klicken Sie auf "Konfigurieren"

Unterscheidung des Plattformtyps

Die Plattformtypkonfiguration (SPA vs. Web) ist entscheidend für die Auswahl des OAuth2-Flows:

  • SPA-Plattform: Sprachspezifische Callbacks (/de/, /en/, /fr/, /it/) verwenden den PKCE-Flow ohne Client-Secret
  • Web-Plattform: Service-Callbacks (openwebui, dagster, datalake, attu) verwenden den Autorisierungscode-Flow mit Client-Secret

Fehlkonfigurierte Plattformtypen führen zum Authentifizierungsfehler AADSTS9002326: Cross-origin token redemption is permitted only for the 'Single-Page Application' client-type. Stellen Sie sicher, dass die Umleitungs-URIs unter dem korrekten Plattformtyp registriert sind.

Erforderliche Authentifizierungsinformationen

Nach Abschluss der Azure-Einrichtung sollten Sie über Folgendes verfügen:

  • [CLIENT_ID] - Anwendungs- (Client-) ID
  • [CLIENT_SECRET] - Client-Secret-Wert
  • [TENANT_ID] - Verzeichnis- (Tenant-) ID

Sie benötigen diese Werte während der Deployment-Konfiguration der Plattform.


Voraussetzungen für das Produktions-Deployment

Nur für Produktions-Deployments

Überspringen Sie diesen gesamten Abschnitt, wenn Sie lokal testen. Diese Schritte sind nur erforderlich, wenn Sie auf einem Server mit einem echten Domainnamen deployen.

DNS-Konfiguration

Konfigurieren Sie DNS-Einträge für Ihre Domain. Die Plattform erfordert sieben Subdomains, die auf die öffentliche IP-Adresse Ihres Servers zeigen:

  • swiss-ai-hub.example.com - Haupt-Web-Oberfläche
  • openwebui.swiss-ai-hub.example.com - Chat-Benutzeroberfläche
  • dagster.swiss-ai-hub.example.com - Pipeline-Orchestrierung
  • datalake.swiss-ai-hub.example.com - Data Lake-Konsole
  • litellm.swiss-ai-hub.example.com - LiteLLM-Proxy
  • attu.swiss-ai-hub.example.com - Milvus Vektordatenbank-Benutzeroberfläche
  • traefik.swiss-ai-hub.example.com - Reverse-Proxy-Dashboard

Ersetzen Sie swiss-ai-hub.example.com durch Ihre tatsächliche Domain. Erstellen Sie A-Einträge oder CNAMEs für alle sieben Subdomains, die auf die IP-Adresse Ihres Servers zeigen.

DNS-Anforderungen für SSL

  • DNS-Einträge müssen für die Bereitstellung von Let's Encrypt SSL-Zertifikaten global zugänglich sein
  • Die VM muss ihre eigenen Domainnamen auflösen können (interne DNS-Auflösung)
  • Konfigurieren Sie die Nameserver korrekt, um OAuth-Authentifizierungs-Timeouts zu vermeiden

Siehe Netzwerkanforderungen für detaillierte DNS-Konfiguration und Fehlerbehebung.


Voraussetzungen für lokales Deployment

Nur für lokales Deployment

Überspringen Sie diesen gesamten Abschnitt, wenn Sie in Produktion deployen. Diese Schritte sind nur erforderlich, wenn Sie die Plattform auf Ihrem lokalen Rechner deployen.

mkcert installieren

Für lokales Deployment mit HTTPS-Unterstützung müssen Sie mkcert installieren, um selbstsignierte SSL-Zertifikate zu generieren, denen Ihr Browser vertraut.

WARNING

Verwenden Sie selbstsignierte SSL-Zertifikate nur für die lokale Entwicklung. Verwenden Sie diese niemals in Produktions- oder öffentlichen Umgebungen.

Linux (Ubuntu/Debian):

bash
sudo apt install libnss3-tools
wget -O mkcert https://dl.filippo.io/mkcert/latest?for=linux/amd64
chmod +x mkcert
sudo mv mkcert /usr/local/bin/

Windows:

powershell
# Using Chocolatey
choco install mkcert

# OR using Scoop
scoop bucket add extras
scoop install mkcert

macOS:

bash
brew install mkcert

Installation überprüfen:

bash
mkcert -version

Was ist mkcert?

mkcert ist ein Tool, das lokal vertrauenswürdige SSL-Zertifikate ohne komplexe Konfiguration generiert. Es installiert automatisch eine lokale Zertifizierungsstelle (CA) in Ihrem System-Vertrauensspeicher, sodass die von ihm generierten Zertifikate von Ihrem Browser als vertrauenswürdig eingestuft werden.


Nächste Schritte

Fahren Sie mit dem Ein-Befehl-Deployment fort, um die Plattform mit den aufgezeichneten Konfigurationswerten zu deployen.

Gebaut mit ❤️ in der Schweiz 🇨🇭