The Formbricks cluster setup consists of multiple components working together to provide a scalable and highly available system. Here’s a detailed overview of the architecture:
Configure S3 storage by adding the following environment variables to your instances:
env
Copy
Ask AI
# Required for file uploads in serverless environmentsS3_ACCESS_KEY=your-access-keyS3_SECRET_KEY=your-secret-keyS3_REGION=your-regionS3_BUCKET_NAME=your-bucket-name# For S3-compatible storage (e.g., StorJ, MinIO)# Leave empty for Amazon S3S3_ENDPOINT_URL=https://your-s3-compatible-endpoint# Enable for S3-compatible storage that requires path style# 0 for disabled, 1 for enabledS3_FORCE_PATH_STYLE=0
When using S3 in a cluster setup, ensure that:
All Formbricks instances have access to the same S3 bucket
The bucket has appropriate CORS settings configured
IAM roles/users have sufficient permissions for read/write operations
When running Formbricks in a cluster setup, you should disable the built-in cron jobs in the Docker image to prevent them from running on multiple instances simultaneously. Instead, you should set up cron jobs in your orchestration system (like Kubernetes) to run on a single instance or as separate jobs.To disable the Docker cron jobs, set the following environment variable:
Formbricks provides an official Helm chart for deploying the entire cluster stack on Kubernetes. The Helm chart is available in the Formbricks GitHub repository.