Hosting settings

Information about Budibase hosting settings

You can run Budibase on your own infra using:

Every self-hosted Budibase platform comes by default with some settings which we recommend you familiarise yourself with as well as updating to suit your needs. All of these settings are passed to your cluster through the use of environment variables. In this section, we'll cover the purpose of each of these.

It should be noted that if you wish to modify any of these settings then you will need to restart your Budibase platform for it to recognise these new settings. If you have been running it already then changing some of these settings may affect the user experience, for example changing the JWT_SECRET will log everyone out.

The full set of variables can be found in our repo, in the file .env which should be included in your hosting solution:

VariableDescription
MAIN_PORTThe main port that your platform will run on, we have exposed this in case you need to change this.
HOSTING_KEYTo secure your app deployments we have introduced a key, which can be used to essentially password protect your Budibase platform. This means that only users with the key will be able to deploy from their builder.
JWT_SECRETA secret used to secure the JSON Web Tokens (JWT) generated by the platform for user authentication. We recommend changing this to a UUID.
MINIO_ACCESS_KEYThe platform makes use of the open-source S3 alternative Minio for object storage, this specifies the access key used to secure the cluster.
We recommend changing this.
MINIO_SECRET_KEYThis is another component used to secure Minio.
We recommend changing this.
COUCH_DB_USERThe username used to secure your hosted CouchDB service.
We recommend changing this.
COUCH_DB_PASSWORDThe password used to secure your hosted CouchDB service.
We recommend changing this.
SQL_MAX_ROWSBy default the maximum number of rows returned by a SQL query is 5000, but you can use this variable to change that. Please note this limit includes any related rows returned, the total number of rows retrieved per query must be below this number.
HTTP_MB_LIMITThe maximum file upload size in MB for attachments. The default is 20MB.
SESSION_EXPIRY_SECONDSThe number of seconds an inactive user session will be kept alive before the user is logged out. The default is one week.
BB_ADMIN_USER_EMAILIf you have lost access to your self host installation, or wish to bring a new install online with a default administration account you can use this environment variable to configure their username.
We do not recommend leaving this set indefinitely, once the user has been created this should be removed.
BB_ADMIN_USER_PASSWORDThe password for the default administration account, used in conjunction with the BB_ADMIN_USER_EMAIL environment variable.
We do not recommend leaving this set indefinitely, once the user has been created this should be removed.
SQL_LOGGING_ENABLEThis environment variable can be set on the apps service to log the queries that are being made to SQL databases. This can help diagnose if any issues are occurring.
API_REQ_LIMIT_PER_SECBy default Budibase will limit the number of requests that can be made to the public API, this will be limited to 10 requests per second. This can be increased by setting this environment variable on the app service.
DISABLE_RATE_LIMITINGBy default Budibase will protect its API from individual clients making too many requests and causing a degradation in performance for other users, this can be disabled via the app service with this environment variable.
PROXY_RATE_LIMIT_API_PER_SECONDAn advanced setting which can be set on the proxy service of Budibase, this defines the maximum requests per second that can be made to the API through the proxy - the default to 20.
PROXY_RATE_LIMIT_WEBHOOKS_PER_SECONDSame as above setting, can be set on the proxy service, this defines how many automation webhook calls can be made per second - the default is 10.
QUERY_THREAD_TIMEOUTQueries from the app service by default will timeout if they take more than 15000 milliseconds to complete. This environment variable can be set to a number of milliseconds to increase or decrease this timeout.
AUTOMATION_THREAD_TIMEOUTAutomation steps ran by the app service can take a maximum of 15000 milliseconds to complete before they will timeout. This environment variable can be set to increase or decrease this per step timeout.
SMTP_USERThe username used to authenticate with the SMTP server. This environment variable is required for sending emails securely through the configured mail server.
SMTP_PASSWORD The password associated with the SMTP user account. This environment variable is necessary for authenticating the connection to the mail server.
SMTP_HOST The hostname or IP address of the SMTP server. This environment variable specifies the mail server used to send emails.
SMTP_PORT The port number used to connect to the SMTP server. This environment variable defines the communication channel for the email service, typically 587 for TLS or 465 for SSL
SMTP_FROM_ADDRESSThe default email address that appears in the "From" field of emails sent by the application. This environment variable is used to specify the sender's identity in outbound emails.

Other settings in the file do not need to be changed but are simply provided in case you which to change the port a service is made available on, we provide access to all the various services our cluster uses directly on a port number for administration purposes (e.g. logging into Fauxton on CouchDB).


What’s Next