Viewer configuration
General
Parameter | Default | Description |
---|---|---|
DATABASE_URL | postgresql://postgres:typebot@db:5432/typebot | The database URL |
ENCRYPTION_SECRET | SgVkYp2s5v8y/B?E(H+MbQeThWmZq4t6 | 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. |
NEXT_PUBLIC_VIEWER_URL | http://localhost:3001 | The viewer base URL. Should be the publicly accessible URL (i.e. https://bot.domain.com ) |
NEXTAUTH_URL | http://localhost:3000 | The builder base URL. Should be the publicly accessible URL (i.e. https://typebot.domain.com ) |
Emails (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 |
SMTP_FROM | - | From name and email (i.e. 'Typebot Notifications' <notifications@typebot.io> ) |
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 |
Google (Sheets)
Used when executing a Google Sheets block. Make sure to set the required scopes (userinfo.email
, spreadsheets
, drive.readonly
) in your console
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 |
Configuration
https://console.developers.google.com/apis/credentials
The "Authorized redirect URIs" used when creating the credentials must include your full domain and end in the callback path. For example,
- For production: https://{YOUR_DOMAIN}/api/auth/callback/google
- For development: http://localhost:3000/api/auth/callback/google
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...)
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. |
Note that for AWS S3, your endpoint is usually: s3.<S3_REGION>.amazonaws.com
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!