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:

Variable

Description

MAIN_PORT

The main port that your platform will run on, we have exposed this in case you need to change this.

HOSTING_KEY

To 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_SECRET

A secret used to secure the JSON Web Tokens (JWT) generated by the platform for user authentication. We recommend changing this to aUUID.

MINIO_ACCESS_KEY

The 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_KEY

This is another component used to secure Minio.
We recommend changing this.

COUCH_DB_USER

The username used to secure your hosted CouchDB service.
We recommend changing this.

COUCH_DB_PASSWORD

The password used to secure your hosted CouchDB service.
We recommend changing this.

SESSION_EXPIRY_SECONDS

The number of seconds an inactive user session will be kept alive before the user is logged out. The default is one week.

SQL_MAX_ROWS

By 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_LIMIT

The maximum file upload size in MB for attachments. The default is 20MB.

MAX_IMPORT_SIZE_MB

The default value for this variable is 100MB. You can increase it if you need to import an app export larger than 100MB.

Additionally, this works alongside HTTP_MB_LIMIT to determine the maximum file upload size. If you need to allow uploads larger than 100MB, you must increase this variable as well.

BB_ADMIN_USER_EMAIL

If 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_PASSWORD

The 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_ENABLE

This 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_SEC

By 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_LIMITING

By 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_SECOND

An 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_SECOND

Same 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_TIMEOUT

Queries 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_TIMEOUT

Automation 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.

PROXY_TIMEOUT_SECONDS

By setting PROXY_TIMEOUT_SECONDS, you can uniformly control how long Nginx will wait when:

  • Establishing a connection to the upstream server.
  • Waiting to receive a response from the upstream server
  • Sending data to the upstream server

SMTP_USER

The 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_ADDRESS

The 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 wish 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