Skip to content

Self-host overview

A Brittle deployment is the Hub container, Postgres, and an artifact store (local volume in dev; S3/R2 in prod).

ComponentRequired?Notes
Hub containerYesghcr.io/brittlehq/brittle:latest. The only image you need to pull.
PostgresYesVersion 14+. Single instance is fine; bring your own or use the compose-supplied one.
Local volumeDefaultFor artifact bytes. Survives docker compose down; dropped on down -v.
S3 / R2 bucketOptionalSwap-in for the local volume when you need shared storage across replicas or a CDN-fronted artifact path.
Caddy / reverse proxyOptionalFor TLS termination and a clean public domain. The example stack ships one.

A few things you might assume are in the stack but aren’t:

  • Redis. Not used today.
  • A separate worker process. Everything runs inside the Hub container.
  • An external auth provider. Local email/password is built in. SSO / OAuth are on the roadmap.

In rough order of effort:

  1. Installation. One line: curl -fsSL https://brittle.dev/install.sh | sh. Or the manual Docker Compose walkthrough if you want to see every moving piece.
  2. Production notes. TLS, real domain, S3 artifacts, backups, upgrades.