Skip to main content

Viewer configuration


DATABASE_URLpostgresql://postgres:typebot@db:5432/typebotThe database URL
ENCRYPTION_SECRETSgVkYp2s5v8y/B?E(H+MbQeThWmZq4t6A 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.
NEXT_PUBLIC_VIEWER_URLhttp://localhost:3001The viewer base URL. Should be the publicly accessible URL (i.e.
NEXTAUTH_URLhttp://localhost:3000The builder base URL. Should be the publicly accessible URL (i.e.

Emails (Notifications)

Used for sending email notifications and authentication

SMTP_HOST--SMTP host. (i.e.
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

Google (Sheets)

Used when executing a Google Sheets block. Make sure to set the required scopes (, spreadsheets, drive.readonly) in your console

GOOGLE_CLIENT_ID--The Client ID from the Google API Console
GOOGLE_CLIENT_SECRET--The Client secret from the Google API Console

S3 Storage (File upload input)

Used for the file upload input. It can be any S3 compatible object storage service (Minio, Digital Oceans Space, AWS S3...)

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 secret key.
S3_SSLtrueUse SSL when establishing the connection.
S3_REGION--S3 region.

Your bucket must have the following policy that tells S3 to allow public read when an object is located under the public folder:

"Version": "2012-10-17",
"Statement": [
"Sid": "PublicRead",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::<BUCKET_NAME>/public/*"

You also need to configure CORS so that an object can be uploaded from the browser:

"AllowedHeaders": ["*"],
"AllowedMethods": ["PUT", "POST"],
"AllowedOrigins": ["*"],
"ExposeHeaders": ["ETag"]

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.

Thank you for supporting independent creators of Free Open Source Software!