If you’re self-hosting Typebot, sponsoring me is a great way to give back to the community and to contribute to the long-term sustainability of the project. It also comes with some perks like priority support and private workshops. ❤️

Parameters marked with * are required.

General

ParameterDefaultDescription
DATABASE_URL *The database URL
ENCRYPTION_SECRET *A 256-bit key used to encrypt sensitive data. It is strongly recommended to generate a new one. The secret should be the same between builder and viewer.
NEXTAUTH_URL *The builder base URL. Should be the publicly accessible URL (i.e. https://typebot.domain.com)
NEXT_PUBLIC_VIEWER_URL *The viewer base URL. Should be the publicly accessible URL (i.e. https://bot.domain.com)
ADMIN_EMAILThe email that will get an UNLIMITED plan on user creation. The associated user will be able to bypass database rules. You can provide multiple emails separated by a comma without spaces.
DEFAULT_WORKSPACE_PLANFREEDefault workspace plan on user creation or when a user creates a new workspace. Possible values are FREE, STARTER, PRO, LIFETIME, UNLIMITED. The default plan for admin user is UNLIMITED
DISABLE_SIGNUPfalseDisable new user sign ups. Invited users are still able to sign up.
NEXT_PUBLIC_ONBOARDING_TYPEBOT_IDTypebot ID used for the onboarding. Onboarding page is skipped if not provided.
DEBUGfalseIf enabled, the server will print valuable logs to debug config issues.
NEXT_PUBLIC_BOT_FILE_UPLOAD_MAX_SIZELimits the size of each file that can be uploaded in the bots (i.e. Set 10 to limit the file upload to 10MB)
CHAT_API_TIMEOUTThe chat API execution timeout (in ms). It limits the chat API exection time. Useful to avoid getting stuck into an unwanted infinite loop. Note that it does not apply to known long-running blocks like OpenAI or else.

Email (Auth, notifications)

Used for sending email notifications and authentication

ParameterDefaultDescription
SMTP_USERNAMESMTP username
SMTP_PASSWORDSMTP password
SMTP_HOSTSMTP host. (i.e. smtp.host.com)
SMTP_PORT25SMTP port
NEXT_PUBLIC_SMTP_FROMFrom name and email (i.e. 'Typebot Notifications' <[email protected]>)
SMTP_SECUREfalseIf true the connection will use TLS when connecting to server. If false (the default) then TLS is used if server supports the STARTTLS extension. In most cases set this value to true if you are connecting to port 465. For port 587 or 25 keep it false
SMTP_AUTH_DISABLEDfalseTo disable the authentication by email but still use the provided config for notifications

Google Auth

ParameterDefaultDescription
GOOGLE_AUTH_CLIENT_IDThe Client ID from the Google API Console
GOOGLE_AUTH_CLIENT_SECRETThe Client secret from the Google API Console

Google Sheets

ParameterDefaultDescription
GOOGLE_SHEETS_CLIENT_IDThe Client ID from the Google API Console
GOOGLE_SHEETS_CLIENT_SECRETThe Client secret from the Google API Console
NEXT_PUBLIC_GOOGLE_SHEETS_API_KEYThe API Key from the Google API Console

Google Fonts

Used authentication in the builder and for the Google Sheets integration step.

ParameterDefaultDescription
NEXT_PUBLIC_GOOGLE_FONTS_API_KEYThe API Key from the Google API Console

GitHub (Auth)

Used for authenticating with GitHub. By default, it uses the credentials of a Typebot-dev app.

You can create your own GitHub OAuth app here. The Authorization callback URL should be $NEXTAUTH_URL/api/auth/callback/github

ParameterDefaultDescription
GITHUB_CLIENT_IDApplication client ID. Also used to check if it is enabled in the front-end
GITHUB_CLIENT_SECRETApplication secret

GitLab (Auth)

Used for authenticating with GitLab. Follow the official GitLab guide for creating OAuth2 applications here. The Authorization callback URL should be $NEXTAUTH_URL/api/auth/callback/gitlab

ParameterDefaultDescription
GITLAB_CLIENT_IDApplication client ID. Also used to check if it is enabled in the front-end
GITLAB_CLIENT_SECRETApplication secret
GITLAB_BASE_URLhttps://gitlab.comBase URL of the GitLab instance
GITLAB_REQUIRED_GROUPSComma-separated list of groups the user has to be a direct member of, e.g. foo,bar
GITLAB_NAMEGitLabName of the GitLab instance, used for the SSO Login Button

Facebook (Auth)

You can create your own Facebook OAuth app here. The Authorization callback URL should be $NEXTAUTH_URL/api/auth/callback/facebook

ParameterDefaultDescription
FACEBOOK_CLIENT_IDApplication client ID. Also used to check if it is enabled in the front-end
FACEBOOK_CLIENT_SECRETApplication secret

Azure AD (Auth)

If you are using Azure Active Directory for the authentication you can set the following environment variables. The Authorization callback URL should be $NEXTAUTH_URL/api/auth/callback/azure-ad

ParameterDefaultDescription
AZURE_AD_CLIENT_IDApplication client ID
AZURE_AD_CLIENT_SECRETApplication client secret. Can be obtained from Azure Portal.
AZURE_AD_TENANT_IDAzure Tenant ID

Keycloak (Auth)

Used for authenticating with Keycloak. Follow the official Keycloak guide for creating OAuth2 applications here.

ParameterDefaultDescription
KEYCLOAK_CLIENT_IDApplication client ID.
KEYCLOAK_CLIENT_SECRETApplication secret
KEYCLOAK_REALMYour Keycloak Realm
KEYCLOAK_BASE_URLBase URL of the Keycloak instance

Custom OAuth Provider (Auth)

ParameterDefaultDescription
CUSTOM_OAUTH_NAMECustom OAuthProvider name. Will be displayed in the sign in form.
CUSTOM_OAUTH_CLIENT_IDOAuth client ID.
CUSTOM_OAUTH_CLIENT_SECRETOAuth client secret.
CUSTOM_OAUTH_WELL_KNOWN_URLOAuth .well-known URL (i.e. https://auth.domain.com/.well-known/openid-configuration)
CUSTOM_OAUTH_USER_ID_PATHidUsed to map the id from the user info object
CUSTOM_OAUTH_USER_NAME_PATHnameUsed to map the name from the user info object
CUSTOM_OAUTH_USER_EMAIL_PATHemailUsed to map the email from the user info object
CUSTOM_OAUTH_USER_IMAGE_PATHimageUsed to map the image from the user info object
CUSTOM_OAUTH_SCOPEopenid profile emailOAuth scope

For *_PATH parameters, you can use dot notation to access nested properties (i.e. account.name).

The Authorization callback URL should be: $NEXTAUTH_URL/api/auth/callback/custom-oauth

S3 Storage (Media uploads)

Used for uploading images, videos, etc… It can be any S3 compatible object storage service (Minio, Digital Oceans Space, AWS S3…)

ParameterDefaultDescription
S3_ACCESS_KEYS3 access key. Also used to check if upload feature is enabled
S3_SECRET_KEYS3 secret key.
S3_BUCKETtypebotName of the bucket where assets will be uploaded in.
S3_PORTS3 Host port number
S3_ENDPOINTS3 endpoint (i.e. s3.domain.com).
S3_SSLtrueUse SSL when establishing the connection.
S3_REGIONS3 region.
S3_PUBLIC_CUSTOM_DOMAINIf the final URL that is used to read public files is different from S3_ENDPOINT

Note that for AWS S3, your endpoint is usually: s3.<S3_REGION>.amazonaws.com

In order to function properly, your S3 bucket must be configured. Make sure to read through the S3 configuration doc.

Giphy (GIF picker)

Used to search for GIF. You can create a Giphy app here

ParameterDefaultDescription
NEXT_PUBLIC_GIPHY_API_KEYGiphy API key

Unsplash (image picker)

Used to search for images. You can create an Unsplash app here

ParameterDefaultDescription
NEXT_PUBLIC_UNSPLASH_APP_NAMEUnsplash App name
NEXT_PUBLIC_UNSPLASH_ACCESS_KEYUnsplash API key

Pexels (video picker)

Used to search for videos. You can create a Pexels app here

ParameterDefaultDescription
NEXT_PUBLIC_PEXELS_API_KEYPexels API key

Tolgee (i18n contribution dev tool)

If you’d like to join contribute to Typebot’s translation join the Discord server and ask for an access to Tolgee in the #contributors channel.

Set up these environment variables to enable Tolgee dev tool.

ParameterDefaultDescription
NEXT_PUBLIC_TOLGEE_API_KEYYour Tolgee API key
NEXT_PUBLIC_TOLGEE_API_URLhttps://tolgee.server.baptistearno.comThe Tolgee API base URL

WhatsApp (Preview)

In order to be able to test your bot on WhatsApp from the Preview drawer, you need to set up a WhatsApp business app.

ParameterDefaultDescription
META_SYSTEM_USER_TOKENThe system user token used to send WhatsApp messages
WHATSAPP_PREVIEW_FROM_PHONE_NUMBER_IDThe phone number ID from which the message will be sent
WHATSAPP_PREVIEW_TEMPLATE_NAMEThe preview start template message name
WHATSAPP_PREVIEW_TEMPLATE_LANGen_USThe preview start template message name
WHATSAPP_CLOUD_API_URLhttps://graph.facebook.comThe WhatsApp Cloud API base URL
WHATSAPP_INTERACTIVE_GROUP_SIZE3The array size of items to send to API on choice input. You can’t choose a number higher than 3 if you are using the official cloud API URL.

Redis

In Typebot, Redis is optional and is used to:

  • Rate limit the sign in requests based on user IP
  • Enable multiple media upload on WhatsApp
ParameterDefaultDescription
REDIS_URLThe database URL. i.e. redis://<username>:<password>@<host>:<port>

PartyKit

PartyKit is optional and is used to make the webhook block work. The PartyKit configuration is located in packages/partykit folder. You can deploy the server into production using bun deploy. You can find more information about PartyKit deployment in their official documentation.

ParameterDefaultDescription
NEXT_PUBLIC_PARTYKIT_HOSTPartyKit host. i.e. partykit.typebot.io

Others

The official Typebot managed service uses other services such as Stripe for processing payments, Sentry for tracking bugs and Sleekplan for user feedbacks.

The related environment variables are listed here but you are probably not interested in these if you self-host Typebot.