Skip to main content

Environment variables

When self-hosting, SuperToolMake is configured with environment variables. The most important ones are listed below. Pass them with --env when running the container (or docker service update --env ... for Swarm).

Core

VariableDescription
MAIN_PORTThe main port the app is served on (e.g. 10000, used as localhost:10000).
SQL_MAX_ROWSAn optional cap on the number of rows returned by SQL queries.

Secrets

These should always be changed from their defaults before going to production.

VariableDescription
JWT_SECRETSecret used to sign authentication tokens.
API_ENCRYPTION_KEYKey used to encrypt stored secrets (such as datasource credentials).
INTERNAL_API_KEYKey used for internal service-to-service calls.
MINIO_ACCESS_KEY / MINIO_SECRET_KEYCredentials for the bundled object store.
COUCH_DB_USER / COUCH_DB_PASSWORDCredentials for the internal database.
REDIS_PASSWORDPassword for the bundled Redis cache.
warning

The default values shipped for local use (such as testsecret and budibase) are not safe for production. Always set strong, unique secrets when deploying.

Bootstrapping an admin user

You can create the first admin user automatically by setting both of these. If they're set, SuperToolMake creates the admin on first startup so you don't have to go through the create-admin screen.

VariableDescription
BB_ADMIN_USER_EMAILEmail for the auto-created admin user.
BB_ADMIN_USER_PASSWORDPassword for the auto-created admin user.

Internal ports

These rarely need changing — they control the ports of the bundled services inside the container.

VariableDefaultService
APP_PORT4002Application server
WORKER_PORT4003Worker
MINIO_PORT4004Object store
COUCH_DB_PORT4005Internal database
REDIS_PORT6379Cache