Skip to content

ChatUI ​

Portée : namespaced · Charge de travail : LibreChat via le chart officiel

L'interface web LibreChat, reliée à un Gateway. Elle requiert MongoDB et utilise éventuellement Meilisearch pour la recherche ; les deux sont des datastores de première classe que ChatUI ne fait que référencer.

Spécification ​

ChampTypeDescription
secretsRefLocalRef (optionnel)SecretsManagement du même namespace à attendre. Omettez-le pour utiliser de simples Secrets Kubernetes que vous gérez vous-même — voir secretsRef
gatewayRefObjectRefUn Gateway (câblé automatiquement si la licence le permet)
gatewayobjectRepli manuel sur un point d'accès : { url, apiKeySecretRef: { name, key } }. key peut être n'importe quelle entrée du Secret (par défaut LITELLM_API_KEY) ; seule cette valeur parvient à LibreChat, pas le reste du Secret
models[]listListe de modèles exposée au client. Le premier est celui par défaut et titre les nouvelles conversations. Vide = tous les modèles du gateway (les conversations sont alors titrées avec le modèle utilisé) : les noms des modèles du gateway référencé sont listés, et les modèles ajoutés plus tard apparaissent toujours. Obligatoire quand le gateway est donné par gateway.url — ses modèles ne peuvent pas être découverts
agentsboolPoint d'accès Agents de LibreChat. Désactivé par défaut (interface.agents: false) ; définissez true pour l'activer
hoststringNom d'hôte de l'interface
ingressobjectclassName, basic-auth, TLS
mongoDatastoreRef (requis)Le store MongoDB de LibreChat
meilisearchMeilisearchRefBackend de recherche (optionnel)
subchartsobjectBascules des sous-charts LibreChat (redis/ragApi uniquement)
valuesobjectSurcouche libre de valeurs Helm pour le chart librechat (voir Valeurs de chart personnalisées)
imageVolumeobjectPVC pour les images téléversées
ssoobjectConnexion OIDC/SSO pour LibreChat (voir SSO)
mcpRefs[]liste d'ObjectRefCR MCPServer à câbler (multi-namespace autorisé). Référencer l'un d'eux active Agents automatiquement (voir Serveurs MCP)

mongo (requis) ​

ModeDescription
refUn MongoCluster + databaseName (par défaut LibreChat, qui doit être déclaré dans le databases[] du cluster)
externalUn connectionSecretRef contenant MONGO_URI

MongoDB est une infrastructure requise ; il n'est donc pas soumis à licence.

meilisearch (optionnel) ​

ModeDescription
ref (par défaut)Une MeilisearchInstance
externalhost + masterKeySecretRef
disabledRecherche désactivée

Les sous-charts MongoDB et Meilisearch inclus dans LibreChat sont toujours désactivés — ces datastores sont gérés par leurs propres resources.

Ce qu'elle installe ​

Le contrôleur installe le chart librechat comme release Helm autonome dans le namespace de ChatUI, ainsi que le ConfigMap de configuration du Gateway Forge. Il traduit la resource en valeurs de chart (URL de base du gateway, liste de modèles, hôte d'ingress + basic-auth, noms des secrets ESO, MONGO_URI / MEILI_HOST résolus, bascules de sous-charts).

Pour Meilisearch, le contrôleur copie la clé maître résolue dans un Secret possédé du même namespace <ui>-meili-key et injecte MEILI_MASTER_KEY via global.librechat.env — ainsi une MeilisearchInstance dans un autre namespace fonctionne malgré tout.

Point d'accès Agents ​

LibreChat livre son point d'accès Agents activé. L'opérateur le désactive par défaut — il rend interface.agents: false dans librechat.yaml — de sorte qu'un ChatUI fraîchement créé n'expose pas la construction d'agents. Réactivez-le avec :

yaml
spec:
  agents: true

Référencer un serveur MCP active aussi les Agents, car LibreChat expose les outils MCP à travers eux. Dans ce cas, l'opérateur n'accorde que ce dont les outils ont besoin :

Comment les Agents ont été activésuse (exécuter des agents)create (éditeur d'agents dans l'UI)
spec.agents: true (choix explicite)✅✅
implicitement, en câblant un serveur MCP✅❌

C'est important car la création d'agents n'est pas réservée aux admins dans LibreChat : les permissions sont émises sous forme d'objet plutôt que d'un simple true, qui hériterait de la valeur par défaut create: true de LibreChat et afficherait l'éditeur d'agents à tous les utilisateurs. share/public restent désactivés dans les deux cas.

Valeurs de chart personnalisées ​

Toutes les options du chart librechat ne sont pas modélisées sous forme de champ de CRD. spec.values est un objet libre fusionné dans les valeurs du chart, ce qui vous permet de définir tout ce que le chart prend en charge (nombre de réplicas, ressources des pods, annotations supplémentaires, …) sans attendre l'ajout d'un nouveau champ de CRD :

yaml
spec:
  values:
    replicaCount: 2
    librechat:
      resources:
        limits: { cpu: "2", memory: 2Gi }

Les clés gérées par l'opérateur l'emportent. Vos valeurs servent de base ; les valeurs calculées par l'opérateur (câblage des datastores, références de secrets, bascules enabled des sous-charts inclus, et les variables d'environnement de tracing/SSO qu'il injecte) sont superposées par-dessus, de sorte que spec.values ne peut pas casser le câblage dont l'opérateur dépend. Utilisez les champs dédiés (mongo, meilisearch, subcharts, agents, sso, …) pour tout ce que l'opérateur modélise ; réservez spec.values aux cas marginaux.

Câblage du Gateway ​

  • Avec la fonctionnalité auto-wiring et un gatewayRef, le contrôleur émet une LiteLLMVirtualKey sur le Gateway référencé, la stocke dans un Secret possédé et injecte baseURL = http://<gw-svc>.<gw-ns>.svc.cluster.local:4000/v1 ainsi que la clé.
  • Sans cela, fournissez gateway.{ url, apiKeySecretRef } manuellement. Voir Câblage automatique.

SSO / OIDC login ​

spec.sso active le fournisseur OpenID Connect de LibreChat — il active ALLOW_SOCIAL_LOGIN et injecte les variables d'environnement OPENID_*. Les identifiants du client OAuth proviennent d'un Secret du même namespace (via SecretsManagement) ; l'opérateur génère lui-même le OPENID_SESSION_SECRET et câble DOMAIN_SERVER/DOMAIN_CLIENT vers l'URL publique de l'interface afin que les callbacks se résolvent.

ChampDescription
issuerURLURL de base de l'émetteur OIDC / de découverte
clientSecretRef.nameSecret contenant le client OAuth (les clés par défaut sont client-id / client-secret)
scopesScopes demandés (par défaut openid, profile, email)
providerNameLibellé du bouton de connexion

Les champs provider, tenantID et les endpoints explicites du type SSO partagé sont réservés au Gateway et ignorés ici (LibreChat déduit les endpoints à partir de issuerURL).

yaml
spec:
  sso:
    issuerURL: https://idp.example.com
    providerName: "Acme SSO"
    clientSecretRef: { name: chatui-oidc }

Serveurs MCP ​

spec.mcpRefs câble des CR MCPServer (catalogue intégré ou externe) dans le point de terminaison Agents de LibreChat. Référencer un serveur active Agents automatiquement ; l'opérateur rend la configuration mcpServers et, pour les cibles internes au cluster, la liste d'autorisation SSRF mcpSettings — automatiquement.

yaml
spec:
  mcpRefs:
    - { name: websearch }             # un MCPServer dans ce namespace
    - { name: docs, namespace: team } # multi-namespace autorisé

Valeurs par défaut renforcées & modèle d'administration ​

L'opérateur rend toujours une interface LibreChat renforcée, indépendamment de l'usage de MCP :

  • La recherche web native et l'interpréteur de code sont DÉSACTIVÉS (interface.webSearch: false, interface.runCode: false). MCP web_search est la voie de recherche web prise en charge.
  • Les utilisateurs ne peuvent pas ajouter ou désactiver de serveurs MCP depuis l'interface — administrateurs compris (la permission interface.mcpServers est limitée à use). Seule la configuration de l'opérateur (vos CR MCPServer) les définit.
  • Aucun véritable administrateur : sur une nouvelle ChatUI, l'opérateur crée un administrateur fantôme réservé et jamais utilisé (mot de passe aléatoire généré dans le Job, jamais conservé) pour occuper le créneau LibreChat « le premier utilisateur inscrit devient ADMIN », de sorte que tous les vrais utilisateurs (CR Identity, SSO) deviennent USER. Les administrateurs existants ne sont pas modifiés.

Exemple ​

yaml
apiVersion: core.navique.com/v1alpha1
kind: ChatUI
metadata:
  name: forge-ui
  namespace: forge-ui
spec:
  secretsRef: { name: chatui-secrets }
  gatewayRef: { name: gateway, namespace: forge-gateway }
  models: [ azure_ai/gpt-5.4 ]
  agents: false            # par défaut — point d'accès Agents de LibreChat désactivé
  host: chat.forge.example.com
  mongo:
    mode: ref
    ref: { name: forge-mongo, namespace: forge-data }
    databaseName: LibreChat
  meilisearch:
    mode: ref
    ref: { name: forge-ui-search }
  ingress:
    enabled: true
    className: nginx
    basicAuthSecret: forge-ui-basic-auth
  values:                  # surcouche libre du chart (les clés de l'opérateur l'emportent)
    replicaCount: 2

Statut ​

La disponibilité du Deployment et l'hôte d'ingress, ainsi que les conditions et observedGeneration standard.

Cœur open source sous AGPL-3.0. Les composants Enterprise sont propriétaires et soumis à licence.