Skip to content

nebari-dev/nebari-chat-pack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

463 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Nebari Chat Pack

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.

Architecture

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.

Quick start (Helm)

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.com

See helm/nebari-chat/values.yaml for the full set of values.

Configuration

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).

Local development

For running the services outside Kubernetes, see:

Release process

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.

License

Apache 2.0 — see LICENSE.

About

A drop-in chat application for Nebari with a React frontend and a Ravnar/AG-UI backend, packaged as a Helm chart wired into Keycloak SSO.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors