Skip to main content

Configurations self-hosting TypeBot

Link: https://docs.typebot.io/self-hosting/configuration

Configuration

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

Parameter Default Description
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_EMAIL   The 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.
NEXTAUTH_URL_INTERNAL   The internal builder base URL. You have to set it only when NEXTAUTH_URL can’t be reached by your builder container / server. For a docker deployment, you should set it to http://localhost:3000.
DEFAULT_WORKSPACE_PLAN FREE Default workspace plan on user creation or when a user creates a new workspace. Possible values are FREESTARTERPROLIFETIMEUNLIMITED. The default plan for admin user is UNLIMITED
DISABLE_SIGNUP false Disable new user sign ups. Invited users are still able to sign up.
NEXT_PUBLIC_ONBOARDING_TYPEBOT_ID   Typebot ID used for the onboarding. Onboarding page is skipped if not provided.
DEBUG false If enabled, the server will print valuable logs to debug config issues.
NEXT_PUBLIC_BOT_FILE_UPLOAD_MAX_SIZE   Limits the size of each file that can be uploaded in the bots (i.e. Set 10 to limit the file upload to 10MB)

Email (Auth, notifications)

Used for sending email notifications and authentication

Parameter Default Description
SMTP_USERNAME   SMTP username
SMTP_PASSWORD   SMTP password
SMTP_HOST   SMTP host. (i.e. smtp.host.com)
SMTP_PORT 25 SMTP port
NEXT_PUBLIC_SMTP_FROM   From name and email (i.e. 'Typebot Notifications' <notifications@host.com>)
SMTP_SECURE false If 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_DISABLED false To disable the authentication by email but still use the provided config for notifications

Google Auth

Parameter Default Description
GOOGLE_CLIENT_ID   The Client ID from the Google API Console
GOOGLE_CLIENT_SECRET   The Client secret from the Google API Console
NEXT_PUBLIC_GOOGLE_API_KEY   The API Key from the Google API Console

Google Sheets

Parameter Default Description
GOOGLE_CLIENT_ID   The Client ID from the Google API Console
GOOGLE_CLIENT_SECRET   The Client secret from the Google API Console
NEXT_PUBLIC_GOOGLE_API_KEY   The API Key from the Google API Console

Google Fonts

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

Parameter Default Description
NEXT_PUBLIC_GOOGLE_API_KEY   The 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

Parameter Default Description
GITHUB_CLIENT_ID   Application client ID. Also used to check if it is enabled in the front-end
GITHUB_CLIENT_SECRET   Application 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

Parameter Default Description
GITLAB_CLIENT_ID   Application client ID. Also used to check if it is enabled in the front-end
GITLAB_CLIENT_SECRET   Application secret
GITLAB_BASE_URL https://gitlab.com Base URL of the GitLab instance
GITLAB_REQUIRED_GROUPS   Comma-separated list of groups the user has to be a direct member of, e.g. foo,bar
GITLAB_NAME GitLab Name 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

Parameter Default Description
FACEBOOK_CLIENT_ID   Application client ID. Also used to check if it is enabled in the front-end
FACEBOOK_CLIENT_SECRET   Application 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

Parameter Default Description
AZURE_AD_CLIENT_ID   Application client ID
AZURE_AD_CLIENT_SECRET   Application client secret. Can be obtained from Azure Portal.
AZURE_AD_TENANT_ID   Azure Tenant ID

Keycloak (Auth)

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

Parameter Default Description
KEYCLOAK_CLIENT_ID   Application client ID.
KEYCLOAK_CLIENT_SECRET   Application secret
KEYCLOAK_REALM   Your Keycloak Realm
KEYCLOAK_BASE_URL   Base URL of the Keycloak instance

Custom OAuth Provider (Auth)

Parameter Default Description
CUSTOM_OAUTH_NAME Custom OAuth Provider name. Will be displayed in the sign in form.
CUSTOM_OAUTH_CLIENT_ID   OAuth client ID.
CUSTOM_OAUTH_CLIENT_SECRET   OAuth client secret.
CUSTOM_OAUTH_WELL_KNOWN_URL   OAuth .well-known URL (i.e. https://auth.domain.com/.well-known/openid-configuration)
CUSTOM_OAUTH_USER_ID_PATH id Used to map the id from the user info object
CUSTOM_OAUTH_USER_NAME_PATH name Used to map the name from the user info object
CUSTOM_OAUTH_USER_EMAIL_PATH email Used to map the email from the user info object
CUSTOM_OAUTH_USER_IMAGE_PATH image Used to map the image from the user info object
CUSTOM_OAUTH_SCOPE openid profile email OAuth 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…)

Parameter Default Description
S3_ACCESS_KEY   S3 access key. Also used to check if upload feature is enabled
S3_SECRET_KEY   S3 secret key.
S3_BUCKET typebot Name of the bucket where assets will be uploaded in.
S3_PORT   S3 Host port number
S3_ENDPOINT   S3 endpoint (i.e. s3.domain.com).
S3_SSL true Use SSL when establishing the connection.
S3_REGION   S3 region.
S3_PUBLIC_CUSTOM_DOMAIN   If 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

Parameter Default Description
NEXT_PUBLIC_GIPHY_API_KEY   Giphy API key

Unsplash (image picker)

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

Parameter Default Description
NEXT_PUBLIC_UNSPLASH_APP_NAME   Unsplash App name
NEXT_PUBLIC_UNSPLASH_ACCESS_KEY   Unsplash API key

Pexels (video picker)

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

Parameter Default Description
NEXT_PUBLIC_PEXELS_API_KEY   Pexels 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.

Parameter Default Description
NEXT_PUBLIC_TOLGEE_API_KEY   Your Tolgee API key
NEXT_PUBLIC_TOLGEE_API_URL https://tolgee.server.baptistearno.com The 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.


Parameter Default Description
META_SYSTEM_USER_TOKEN   The system user token used to send WhatsApp messages
WHATSAPP_PREVIEW_FROM_PHONE_NUMBER_ID   The phone number ID from which the message will be sent
WHATSAPP_PREVIEW_TEMPLATE_NAME   The preview start template message name
WHATSAPP_PREVIEW_TEMPLATE_LANG en_US The preview start template message name
WHATSAPP_CLOUD_API_URL https://graph.facebook.com The WhatsApp Cloud API base URL
WHATSAPP_INTERACTIVE_GROUP_SIZE 3 The 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
Parameter Default Description
REDIS_URL   The database URL. i.e. redis://<username>:<password>@<host>:<port>

Others

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

Vercel (custom domains)
Parameter Default Description
VERCEL_TOKEN   Vercel API token
NEXT_PUBLIC_VERCEL_VIEWER_PROJECT_NAME   The name of the viewer project in Vercel
VERCEL_TEAM_ID   Vercel team ID that contains the viewer project
Telemetry
Parameter Default Description
MESSAGE_WEBHOOK_URL   Webhook URL called to receive important system messages
USER_CREATED_WEBHOOK_URL   Webhook URL called whenever a new user is created
PostHog
Parameter Default Description
NEXT_PUBLIC_POSTHOG_KEY   PostHog API Key
NEXT_PUBLIC_POSTHOG_HOST https://app.posthog.com PostHog API Host
System labels
Parameter Default Description
NEXT_PUBLIC_VIEWER_404_TITLE 404  
NEXT_PUBLIC_VIEWER_404_SUBTITLE The bot you’re looking for doesn’t exist