This page describes how to set up Bytebase in production environment. System Requirements

Enable HTTPS and WebSocket

You can use Caddy or Nginx. Check out the configuration example.

Configure External URL

See Configure External URL.

Store metadata in External PostgreSQL

See Configure External PostgreSQL.

Telemetry

Access telemetry at /metrics (e.g. https://demo.bytebase.com/metrics).

High Availability (HA)

You can only run a single Bytebase workspace at a time. In other words, you can scale up the workspace but cannot scale it out to multiple replicas. Restarting the Bytebase workspace usually takes under 10 seconds. To minimize the downtime, you should store the metadata in an external PostgreSQL database and make sure the PostgreSQL instance is highly available.

Kubernetes

Set replicas: 1

Make sure to set the replicas to 1, otherwise, it may cause data race issues.

Stateless Architecture

Bytebase is now stateless and does not require persistent volumes. All metadata should be stored in an external PostgreSQL database.

Docker Image Versioning

For production deployments, pin to a specific version (e.g., bytebase/bytebase:3.9.0) instead of using latest to prevent unexpected updates. See the latest versions in our changelog.

Cloud vendor stack

If you self-host Bytebase in the cloud provider, below is the recommended stack.

AWS

GCP

  • GCE + Cloud SQL for PostgreSQL.
  • GKE + Cloud SQL for PostgreSQL.