Production Setup

This page describes how to setup 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.

High Availability (HA)

You can only run a single Bytebase instance at any point it time. In another word, you can scale-up the instance but not scale-out the instance to multiple replicas.

Restarting the Bytebase instance usually takes under 10 seconds. To minimize the downtime, you should store the metadata in an external PostgreSQL and make sure the PostgreSQL instance is highly available.

Kubernetes

Use Persistent Volume

If Bytebase is configured to store either metadata or the backups on the local disk, then you must use Persistent Volume. Local disk cannot persist state and can also cause frequent pod eviction due to disk pressure during backup.

Status: Failed
Reason: Evicted
Message: Pod The node had condition: [DiskPressure].

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.
Edit this page on GitHub