BuildBaseBuildBase

Configuration

All environment variables and Docker images for self-hosted BuildBase.

Environment Variables

Installation (Required)

These are provided by the BuildBase dashboard when you create an Installation.

VariableDescription
INSTALLATION_API_KEYInstallation API key (from dashboard)
INSTALLATION_IDInstallation ID (from dashboard)

Server (Required)

VariableDescription
NODE_ENVSet to production
PORTServer port (default: 3000)
MONGO_CONNECTION_URLMongoDB connection string
REDIS_HOSTRedis hostname (default: localhost)
REDIS_PORTRedis port (default: 6379)
SERVER_URLPublic URL of the tenant server (default: http://localhost:4101)
APPLICATION_URLPublic URL of the client app (default: http://localhost:4100)
AUTH_SERVER_URLPublic URL of the auth portal (default: http://localhost:4103)
JWT_PASSJWT signing secret
DB_ENCRYPTION_KEYDatabase field encryption key
SECRET_KEYGeneral application secret
OAUTH2_SECRETOAuth2 token secret
INSTALLATION_API_KEYInstallation API key (from BuildBase dashboard)
INSTALLATION_IDInstallation ID (from BuildBase dashboard)

Client App

VariableDescription
NEXT_PUBLIC_SERVER_URLTenant server URL
NEXT_PUBLIC_DEFAULT_TENANT_SERVER_URLDefault tenant server URL
NEXT_PUBLIC_INSTALLATION_IDInstallation ID (for org filtering)

CORS

VariableDescription
CORS_WHITELISTED_DOMAINSComma-separated list of allowed origins

The platform origins (console.buildbase.app) are always allowed by default.

Redis

VariableDescriptionDefault
REDIS_PASSWORDPassword (if required)
REDIS_DBDatabase number0

Optional Services

VariableDescription
GOOGLE_AUTH_CLIENT_IDGoogle OAuth client ID (for Google vendor + Gmail sender)
GOOGLE_AUTH_CLIENT_SECRETGoogle OAuth client secret
GOOGLE_STORAGE_ASSETS_BUCKET_NAMEGCS bucket for file uploads
MAILGUN_API_KEYMailgun API key (for transactional emails)

Generating Secrets

All secret values should be unique, random strings. Generate them with:

openssl rand -hex 32

Or generate all required secrets at once:

for i in JWT_PASS DB_ENCRYPTION_KEY SECRET_KEY OAUTH2_SECRET; do echo "$i=$(openssl rand -hex 32)"; done

Docker Images

ImageDescriptionPortHealth Check
buildbaseapp/tenant-serverBackend API server3000GET /api/ready
buildbaseapp/clientWeb dashboard (Next.js SSR)3000GET /
buildbaseapp/authAuth portal (Next.js)3000GET /health

All images are multi-arch (linux/amd64, linux/arm64), built on Node.js 22 Alpine. docker pull selects the correct variant for the host automatically. 32-bit ARM (linux/arm/v7) is not supported — see Supported architectures.

Architecture

Loading diagram...

Your data never leaves your infrastructure. The central server only handles authentication tokens, installation licensing, and organization metadata.