Skip to content

Deploy Busbar

Busbar is a single static binary with no runtime dependencies. Find your row, run the command, follow the guide.

SubstrateGet itBest forGuide
Homebrewbrew install GetBusbar/busbar/busbarmacOS & Linux dev machinesDownload
One-line installcurl -fsSL https://getbusbar.com/install.sh | shquick try, any UnixDownload
Binary + systemdrelease binariesVMs, bare metal, config-mgmt fleetsBinary
Dockerdocker pull getbusbar/busbara single host, local, or ComposeDocker
Docker Composecompose.yamla host with a writable governance volumeDocker
Kubernetes (Helm)helm repo add busbar https://getbusbar.github.io/helm-chartsclusters — the official chart renders everythingKubernetes (Helm)

Point any of these at a running gateway’s admin API to drive virtual keys, hooks, and config:

ToolGet itGuide
Terraformsource = "getbusbar/busbar"Terraform
PulumiGetBusbar/pulumi-busbar (Python / TS / Go)Terraform § Pulumi
CrossplaneGetBusbar/provider-busbar (K8s CRDs)Terraform § Crossplane
SDKspip install busbar-admin · npm i @busbar/busbar-admin · go get …/busbar-goSDKs
busbar-admin (CLI)cargo install --git https://github.com/GetBusbar/busbar-adminSDKs § CLI
CI validationuses: GetBusbar/validate-action@v1validate-action

However you run it, the model is the same:

  • Two config files. config.yaml (the deploy config) and providers.yaml (the provider catalog — ships inside the Docker image; fetched by the installer for the bare binary). Default locations /etc/busbar/config.yaml and /etc/busbar/providers.yaml, overridable via BUSBAR_CONFIG / BUSBAR_PROVIDERS.
  • Secrets stay in the environment. Provider API keys, client tokens, and the admin token are read from environment variables (referenced as ${VAR} in config.yaml), never written into the config files. An unset referenced variable is a loud startup failure.
  • Two listeners. The public data plane (:8080) serves LLM traffic; the admin plane always runs on its own listener (:8081, loopback by default) and refuses to boot on a network-exposed bind without mTLS. See Operations and the Admin API.
  • Health checks. GET /healthz on the data port (and the admin port) — unauthenticated, side-effect-free, ideal for a load balancer or orchestrator probe.
  • Validate before you reload. busbar --validate parses and validates both files with no server, no network, and no secrets — exit 0 = safe to deploy. Run it in CI and before every reload.