Skip to content

Installation

Deploy Bifrost using Docker Compose

  • Docker and Docker Compose installed
  1. Clone the repository:

    Terminal window
    git clone https://github.com/jackmusick/bifrost.git
    cd bifrost
  2. Run the setup script:

    Terminal window
    ./setup.sh

    This generates .env with secure random secrets for all services.

  3. Start all services:

    Terminal window
    docker compose up
  4. Access the application at http://localhost:3000

    The first user to register becomes the Platform Admin.

Docker Compose starts these services:

ServicePurpose
apiFastAPI application - handles HTTP requests
clientReact frontend served via nginx
workerBackground job processor (scalable)
schedulerRuns scheduled workflows and cleanup jobs
postgresPrimary database
pgbouncerConnection pooler for PostgreSQL
rabbitmqMessage queue for async jobs
redisSessions, cache, and sync execution results
minioS3-compatible object storage for workspace files

The setup.sh script generates all required secrets automatically. You only need to edit .env for optional features.

VariableDescription
BIFROST_DEFAULT_USER_EMAILSkip setup wizard by pre-creating admin
BIFROST_DEFAULT_USER_PASSWORDPassword for default admin user
BIFROST_CORS_ORIGINSAllowed origins for CORS (default: http://localhost:3000)

SSO providers (Microsoft, Google, OIDC) are configured in the UI, not via environment variables.

See Configure SSO for setup instructions.

Check service health:

Terminal window
# View all container status
docker compose ps
# Check API health
curl http://localhost:3000/api/health
# View logs
docker compose logs -f api
docker compose logs -f worker
  • Generate cryptographically secure values for BIFROST_SECRET_KEY, POSTGRES_PASSWORD, and RABBITMQ_PASSWORD
  • Use a reverse proxy (nginx, Traefik, Caddy) with TLS termination
  • Consider using external secret management to populate .env

Increase worker replicas for higher throughput:

Terminal window
WORKER_REPLICAS=3 docker compose up

Or scale dynamically:

Terminal window
docker compose up -d --scale worker=3

For Kubernetes deployments:

  • Scheduler must run as a single replica
  • Workers can scale horizontally (they download workspace from S3)
  • Consider managed PostgreSQL, RabbitMQ, Redis, and S3-compatible storage
  • See the k8s/ directory for example manifests