Zum Inhalt springen

App-Host

Standardmäßig liegt alles von Labtagon AI OS auf einem Host, global.host: die Konsole, /api, /mcp und die Anmelde-Metadaten. Mit ADR 0097 kannst du die Konsole auf einen eigenen Host legen.

Setz global.appHost, zum Beispiel app.example.com:

global:
host: example.com
appHost: app.example.com
routes:
parentRefs:
- { name: platform, namespace: envoy-gateway-system, sectionName: https }
# Nur wenn der App-Host an einem anderen Gateway hängt:
appParentRefs: []

Dann gilt:

  • Auf dem App-Host liegen die Konsole und /api. Personen melden sich dort an und arbeiten dort; die Cookies der Sitzung gehören zum App-Host.
  • Der Haupt-Host behält, was Clients, Agenten und Anwendungen aufrufen: /mcp, die Anmelde-Metadaten unter /.well-known, /api (die Anmeldung der Clients, /api/llm/v1 des LLM-Gateways, die bei Providern hinterlegten Callbacks) und die Datei-Links unter /f. Registrierungen und Tokens der Clients bleiben, wie sie sind.
  • Die Schritte der Anmeldung im Browser ziehen auf den App-Host um: /api/auth/*, der Callback einer Verbindung und die Autorisierungsantwort eines Clients leiten auf dieselbe Adresse am App-Host weiter.
  • / des Haupt-Hosts schickt den Browser zum App-Host. Soll dort etwas Eigenes antworten, etwa deine Website, setz routes.mainHostRoot: false und route / des Haupt-Hosts selbst.

Was du anderswo änderst:

  • Der OpenID-Connect-Client der Konsole braucht den Callback des App-Hosts, https://<App-Host>/api/auth/callback, und seine Adresse nach dem Abmelden.
  • Der neue Host braucht einen Listener am Gateway (oder einen Ingress), ein Zertifikat und einen DNS-Eintrag. Mit einem Listener je Host am selben Gateway kann appParentRefs leer bleiben: Die Gateway API wählt den Listener nach den Hostnamen der Route.

Links, die AI OS in Benachrichtigungen und Shares schreibt, nennen weiter den Haupt-Host; der leitet sie an den App-Host weiter (eine Weiterleitung mehr).

Dieses Handbuch ist ein eigener Container (ai-os-docs, aus docs/handbook): eine statische Seite hinter einem unprivilegierten nginx auf Port 8080, ohne Analyse, ohne Cookies und ohne etwas, das von anderen Hosts geladen wird. Es gehört nicht zum Chart.