A drop-in chat application for Nebari, with a React frontend and a Ravnar-based backend that speaks the AG-UI protocol.
The pack ships as a Helm chart that deploys both services and wires them into Nebari's Keycloak for SSO.
| Component | Description | Image |
|---|---|---|
frontend/ |
React + Vite chat UI, authenticates via Keycloak. | quay.io/nebari/nebari-chat-frontend |
backend/ |
Ravnar agent server with a Keycloak bearer-token authenticator. | quay.io/nebari/nebari-chat-backend |
helm/nebari-chat/ |
Umbrella chart that deploys the frontend and pulls in the ravnar chart for the backend. |
oci://quay.io/nebari/charts/nebari-chat |
The backend is a thin extension of Ravnar — bring your own agents by adding them to the image or mounting them as plugins under RAVNARPATH. See backend/README.md for the Python package and frontend/README.md for the UI.
Requires a Kubernetes cluster with Nebari (or a compatible Keycloak + ingress setup).
helm install chat oci://quay.io/nebari/charts/nebari-chat \
--set keycloak.url=https://keycloak.example.com \
--set frontend.nebariapp.hostname=chat.example.com \
--set backend.nebariapp.hostname=chat-api.example.comSee helm/nebari-chat/values.yaml for the full set of values.
The chart's top-level values:
| Key | Purpose |
|---|---|
keycloak.url / keycloak.realm |
Keycloak server and realm used by both frontend and backend. |
frontend.nebariapp.hostname |
Public hostname for the chat UI. |
backend.nebariapp.hostname |
Public hostname for the Ravnar API. |
frontend.enabled |
Set false to deploy only the backend. |
config.inline |
Inline Ravnar config merged into the backend's config.yml. |
ravnar.image.tag / frontend.image.tag |
Override image tags (default: chart appVersion). |
For running the services outside Kubernetes, see:
frontend/README.md—npm run dev, env vars, Keycloak config.backend/README.md— theravnar-nebari-chatPython package.
Docker images for the frontend and backend are published by pushing a v$SEMVER tag (e.g. v1.2.3). The Helm chart is published by pushing a chart/v$SEMVER tag (e.g. chart/v1.2.3).
Important
Do not push the app and chart tags at the same time. Each tag triggers the release workflow independently, and if the chart tag arrives first, the chart may reference the previous app version instead of the newly tagged one.
Apache 2.0 — see LICENSE.