One-Click Setup
How to set up Formbricks instance with a one-click script
This only works with an Ubuntu machine, so ensure the underlying OS is verified beforehand!
If you’re looking to quickly set up a production instance of Formbricks on an Ubuntu server, this guide is for you. Using a convenient shell script, you can install everything—including Docker, Postgres DB, and an SSL certificate—in just a few steps. The script takes care of all the dependencies and configuration for your server, making the process smooth and simple.
This setup uses Traefik as a reverse proxy, essential for directing incoming traffic to the correct container and enabling secure internet access to Formbricks. Traefik is chosen for its simplicity and automatic SSL management via Let’s Encrypt.
For other operating systems or a more customized installation, please refer to the advanced installation guide with Docker.
Requirements
-
An Ubuntu Virtual Machine with SSH access.
-
A custom domain with an A record pointing to your server.
-
Ports 80 and 443 are open in your VM’s Security Group, allowing Traefik to create an SSL certificate.
Deployment
Run this command in your terminal:
Script Prompts
During installation, the script will prompt you to provide some details:
- Overwriting Docker GPG Keys: If Docker GPG keys already exist, the script will ask whether you want to overwrite them.
- Domain Name: Enter the domain name where you’ll host Formbricks. The domain will be used to generate an SSL certificate. Do not include the protocol (http/https).
- HTTPS Certificate Setup:
The script will ask if you’d like to create an HTTPS certificate for your domain. Enter
Y
to proceed (highly recommended for secure access).
- DNS Setup Prompt: Ensure that your domain’s DNS is correctly configured and ports 80 and 443 are open. Confirm this by entering
Y
. This step is crucial for proper SSL certificate issuance and secure server access.
- Email Address for SSL Certificate: Provide an email address to register the SSL certificate. Notifications regarding the certificate will be sent to this address.
- Enforce HTTPS with HSTS:
Enabling HTTP Strict Transport Security (HSTS) ensures all communication with your server is encrypted. It’s a recommended best practice. Enter
Y
to enforce HTTPS.
- Email Service Setup Prompt: The script will ask if you want to set up the email service. Enter
Y
to proceed.(default isN
). You can skip this step if you don’t want to set up the email service. You will still be able to use Formbricks without setting up the email service.
That’s it! After running the command and providing the required information, visit the domain name you entered, and you should see the Formbricks home wizard!
Update
To update Formbricks, simply run the following command:
The script will automatically pull the latest version of Formbricks from GitHub Container Registry and restart the containers.
Stop
To stop Formbricks, simply run the following command:
The script will automatically stop all the Formbricks related containers and brings the entire stack down.
Restart
To restart Formbricks, simply run the following command:
The script will automatically restart all the Formbricks related containers and brings the entire stack up with the previous configuration.
Uninstall
To uninstall Formbricks, simply run the following command, but keep in mind that this will delete all your data!
The script will automatically stop all the Formbricks related containers, remove the Formbricks directory, and delete the Docker network.
Debug
If you encounter any issues, you can check the logs of the containers with:
Troubleshooting
If you encounter any issues, consider the following steps:
-
Inbound Rules: Make sure you have added inbound rules for Port 80 and 443 in your VM’s Security Group.
-
A Record: Verify that you have set up an A record for your domain, pointing to your VM’s IP address.
-
Check Docker Instances: Run
docker ps
to check the status of the Docker instances. -
Check Formbricks Logs: Run
cd formbricks && docker compose logs
to check the logs of the Formbricks stack.
If you have any questions or require help, feel free to reach out to us on GitHub Discussions. 😃
Was this page helpful?