BuildBuddy

AWS Developer Tools

A remote cache, Build Event Protocol results store and dashboard that makes Bazel builds faster and easier to debug.

Base
Hardened build
minimal ports, security patches applied at build time
Access
Unique credentials
generated on first boot, readable only by root
Verified
Boots working
services pass a health gate before release
Support
24/7, 365 days
by email and live chat, 24 hour response SLA

Overview

BuildBuddy is an open source platform for Bazel that combines a remote cache, a Build Event Protocol results store and a web dashboard. Point Bazel at it and the first machine to build a target populates a shared cache, so your developers and CI download results instead of recompiling, while every invocation streams to a dashboard where you can inspect targets, timing, the critical path, test logs and cache statistics.

It suits any team that runs Bazel and wants faster, more debuggable builds from a cache and results store they run and own inside their own cloud account, rather than depending on a hosted service. It runs the pinned upstream open source on-prem container, self contained on SQLite and local disk with no external database.

Why the cloudimg image

Open source BuildBuddy ships with no built in authentication. The cloudimg image is secure by default: the dashboard is fronted by an nginx reverse proxy that enforces HTTP Basic Auth, and a unique administrator password is generated on each instance's first boot and written to a root only file, so no two instances share a secret and the dashboard is never open. The proxy fails closed until that per instance credential exists. The appliance learns its own public address on every boot so invocation links always work, ships a bundled self test that proves the cache accelerates a real build, and comes with a paired deployment guide and 24/7 cloudimg support.

Common uses

  • Speeding up local and CI Bazel builds by sharing a remote cache across machines
  • Inspecting and debugging every Bazel invocation in a shareable web dashboard
  • A self hosted Bazel cache and results store you run inside your own cloud account

Key features

  • BuildBuddy, the open source Bazel remote cache, Build Event Protocol results store and drillable build dashboard, installed and run as the pinned upstream open source on-prem container managed by systemd. Point Bazel at the appliance to share compiled artifacts and action results across your developers and CI, and inspect every invocation, target, timing and cache statistic in the dashboard.
  • Secure by default with no shared or default credential and no open dashboard: the web UI is fronted by an nginx reverse proxy that enforces HTTP Basic Auth. On first boot a unique administrator password is generated for this specific instance and written to a root owned file, and the proxy fails closed until that credential exists, so no two instances share a secret and the dashboard can never come up open.
  • 24/7 expert technical support from cloudimg with a one hour average response time for critical issues. Our engineers help with pointing Bazel at the cache and Build Event Protocol endpoint, sizing the cache, restricting the gRPC endpoint with the security group, TLS termination, dashboard access, and BuildBuddy version upgrades.

See it running

Real screenshots taken while testing this image against its deployment guide.

BuildBuddy screenshot 1 BuildBuddy screenshot 2 BuildBuddy screenshot 3

Description

This is a repackaged open source software product wherein additional charges apply for cloudimg support services.

BuildBuddy is an open source platform that makes Bazel builds faster and easier to debug. It combines a remote cache, a Build Event Protocol results store and a web dashboard, so your team stops rebuilding what has already been built and gets a shareable, drillable view of every invocation.

Point Bazel at this appliance and it caches build and test action results centrally: the first machine to build a target populates the cache, and everyone else, including CI, downloads the result instead of recompiling. Every invocation streams to the dashboard where you can inspect targets, timing, the critical path, test logs and cache statistics.

This image runs the pinned upstream open source BuildBuddy on-prem container as a systemd managed service, self-contained on SQLite and local disk with no external database to run. The dashboard is served on port 8080 and the gRPC cache and Build Event Protocol endpoint on port 1985, and a bundled self-test lets you confirm the remote cache accelerates a real Bazel build straight from the box.

Unlike a bare deployment, this image is secure by default. Open source BuildBuddy ships with no built-in authentication, so here the dashboard is fronted by an nginx reverse proxy that enforces HTTP Basic Auth, and there is no shared or default credential. A unique administrator password is generated on each instance's first boot and written to a root only file, so no two instances share a secret and the dashboard is never open. The build time proxy fails closed with a non matching placeholder until first boot writes the real per instance credential. The appliance also learns its own public address on every boot, so invocation links work without hand editing.

Key capabilities: a shared remote build cache and Build Event Protocol results store served to Bazel; a drillable web dashboard for inspecting every invocation, target, timing and cache statistic; HTTP Basic Auth enforced by an nginx reverse proxy with a unique per instance administrator password and no baked login; a self-contained SQLite plus local disk store with nothing else to deploy; a bundled bazelisk self-test that proves the cache accelerates a real build; and automatic public address resolution on every boot. Get started by reading the generated password from the root only file, then point Bazel at the appliance with build --bes_backend and --remote_cache to start sharing artifacts.

Genuinely open source: the MIT licensed core is shipped and the enterprise only code is not bundled. Recommended size m5.large to start, scaling up for a larger shared cache. The gRPC cache endpoint on port 1985 has no built in authentication in the open source edition, so restrict it to trusted build hosts in your security group, which should permit ports 22, 8080 and 1985.

This is a repackaged open source software product with additional charges for cloudimg support services. BuildBuddy is distributed under the MIT License; the enterprise directory is not included. Bazel is a trademark of its respective owner. All product and company names are trademarks or registered trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.

Related technologies

buildbuddybazelremote cachebuild cachebuild event protocoldeveloper toolscicontinuous integrationgrpcself hosted