# Configurations self-hosting TypeBot Link: [https://docs.typebot.io/self-hosting/configuration](https://docs.typebot.io/self-hosting/configuration)
### Configuration
If you’re self-hosting Typebot, [sponsoring me](https://github.com/sponsors/baptisteArno) 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](https://docs.typebot.io/self-hosting/deploy/docker#2-add-the-required-configuration) 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\_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\_ID Typebot 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\_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)
[​
](https://docs.typebot.io/self-hosting/configuration#email-auth-notifications)
## Email (Auth, notifications) Used for sending email notifications and authentication
ParameterDefaultDescription
SMTP\_USERNAME SMTP username
SMTP\_PASSWORD SMTP password
SMTP\_HOST SMTP host. (i.e. `smtp.host.com`)
SMTP\_PORT25SMTP port
NEXT\_PUBLIC\_SMTP\_FROM From name and email (i.e. `'Typebot Notifications' `)
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
[​
](https://docs.typebot.io/self-hosting/configuration#google-auth)
## Google Auth
ParameterDefaultDescription
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
[​
](https://docs.typebot.io/self-hosting/configuration#google-sheets)
## Google Sheets
ParameterDefaultDescription
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.
ParameterDefaultDescription
NEXT\_PUBLIC\_GOOGLE\_API\_KEY The API Key from the Google API Console
[​
](https://docs.typebot.io/self-hosting/configuration#github-auth)
## 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](https://github.com/settings/developers). The Authorization callback URL should be `$NEXTAUTH_URL/api/auth/callback/github`
ParameterDefaultDescription
GITHUB\_CLIENT\_ID Application client ID. Also used to check if it is enabled in the front-end
GITHUB\_CLIENT\_SECRET Application secret
[​
](https://docs.typebot.io/self-hosting/configuration#gitlab-auth)
## GitLab (Auth) Used for authenticating with GitLab. Follow the official GitLab guide for creating OAuth2 applications [here](https://docs.gitlab.com/ee/integration/oauth_provider.html). The Authorization callback URL should be `$NEXTAUTH_URL/api/auth/callback/gitlab`
ParameterDefaultDescription
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](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\_NAMEGitLabName of the GitLab instance, used for the SSO Login Button
[​
](https://docs.typebot.io/self-hosting/configuration#facebook-auth)
## Facebook (Auth) You can create your own Facebook OAuth app [here](https://developers.facebook.com/apps/create/). The Authorization callback URL should be `$NEXTAUTH_URL/api/auth/callback/facebook`
ParameterDefaultDescription
FACEBOOK\_CLIENT\_ID Application client ID. Also used to check if it is enabled in the front-end
FACEBOOK\_CLIENT\_SECRET Application secret
[​
](https://docs.typebot.io/self-hosting/configuration#azure-ad-auth)
## Azure AD (Auth) If you are using [Azure Active Directory](https://azure.microsoft.com/en-us/services/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\_ID Application client ID
AZURE\_AD\_CLIENT\_SECRET Application client secret. Can be obtained from Azure Portal.
AZURE\_AD\_TENANT\_ID Azure Tenant ID
[​
](https://docs.typebot.io/self-hosting/configuration#keycloak-auth)
## Keycloak (Auth) Used for authenticating with Keycloak. Follow the official Keycloak guide for creating OAuth2 applications [here](https://www.keycloak.org/).
ParameterDefaultDescription
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
[​
](https://docs.typebot.io/self-hosting/configuration#custom-oauth-provider-auth)
## Custom OAuth Provider (Auth)
ParameterDefaultDescription
CUSTOM\_OAUTH\_NAMECustom OAuthProvider 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\_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`
[​
](https://docs.typebot.io/self-hosting/configuration#s3-storage-media-uploads)
## 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\_KEY S3 access key. Also used to check if upload feature is enabled
S3\_SECRET\_KEY S3 secret key.
S3\_BUCKETtypebotName 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\_SSLtrueUse 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..amazonaws.com` In order to function properly, your S3 bucket must be configured. Make sure to read through the [S3 configuration](https://docs.typebot.io/self-hosting/guides/s3) doc.
[​
](https://docs.typebot.io/self-hosting/configuration#giphy-gif-picker)
## Giphy (GIF picker) Used to search for GIF. You can create a Giphy app [here](https://developers.giphy.com/dashboard/)
ParameterDefaultDescription
NEXT\_PUBLIC\_GIPHY\_API\_KEY Giphy API key
[​
](https://docs.typebot.io/self-hosting/configuration#unsplash-image-picker)
## Unsplash (image picker) Used to search for images. You can create an Unsplash app [here](https://unsplash.com/developers)
ParameterDefaultDescription
NEXT\_PUBLIC\_UNSPLASH\_APP\_NAME Unsplash App name
NEXT\_PUBLIC\_UNSPLASH\_ACCESS\_KEY Unsplash API key
[​
](https://docs.typebot.io/self-hosting/configuration#pexels-video-picker)
## Pexels (video picker) Used to search for videos. You can create a Pexels app [here](https://www.pexels.com/api/key/)
ParameterDefaultDescription
NEXT\_PUBLIC\_PEXELS\_API\_KEY Pexels API key
[​
](https://docs.typebot.io/self-hosting/configuration#tolgee-i18n-contribution-dev-tool)
## Tolgee (i18n contribution dev tool)
If you’d like to join contribute to Typebot’s translation join the [Discord server](https://discord.gg/xjyQczWAXV) and ask for an access to Tolgee in the [\#contributors channel](https://discord.com/channels/1155799591220953138/1155883114455900190). Set up these environment variables to enable [Tolgee dev tool](https://tolgee.io/features/dev-tools).
ParameterDefaultDescription
NEXT\_PUBLIC\_TOLGEE\_API\_KEY Your Tolgee API key
NEXT\_PUBLIC\_TOLGEE\_API\_URL[https://tolgee.server.baptistearno.com](https://tolgee.server.baptistearno.com/)The Tolgee API base URL
[​
](https://docs.typebot.io/self-hosting/configuration#whatsapp-preview)
## 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\_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\_LANGen\_USThe preview start template message name
WHATSAPP\_CLOUD\_API\_URL[https://graph.facebook.com](https://graph.facebook.com/)The 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.
[​
](https://docs.typebot.io/self-hosting/configuration#redis)
## 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\_URL The database URL. i.e. `redis://:@:`
[​
](https://docs.typebot.io/self-hosting/configuration#others)
## Others The [official Typebot managed service](https://app.typebot.io/) uses other services such as [Stripe](https://stripe.com/) for processing payments, [Sentry](https://sentry.io/) for tracking bugs and [Sleekplan](https://sleekplan.com/) for user feedbacks. The related environment variables are listed here but you are probably not interested in these if you self-host Typebot. ##### **Vercel (custom domains)**
ParameterDefaultDescription
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**
ParameterDefaultDescription
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**
ParameterDefaultDescription
NEXT\_PUBLIC\_POSTHOG\_KEY PostHog API Key
NEXT\_PUBLIC\_POSTHOG\_HOST[https://app.posthog.com](https://app.posthog.com/)PostHog API Host
**System labels**
ParameterDefaultDescription
NEXT\_PUBLIC\_VIEWER\_404\_TITLE404
NEXT\_PUBLIC\_VIEWER\_404\_SUBTITLEThe bot you’re looking for doesn’t exist