Deploy a self-hosted Typeform alternative for surveys, feedback forms, and user research with powerful targeting and analytics.
Grab the automated bash script from GitHub to follow along with the video.
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/tools/formbricks/formbricks-ubuntu.sh
chmod +x formbricks-ubuntu.sh
sudo bash formbricks-ubuntu.sh
The script installs Docker, pulls the Formbricks and PostgreSQL images, generates secure environment variables, and starts all containers. Formbricks will be available on port 3000 with a PostgreSQL backend for full data persistence.
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/tools/formbricks/formbricks-ubuntu.sh
chmod +x formbricks-ubuntu.sh
sudo bash formbricks-ubuntu.sh
Open your browser and navigate to Formbricks:
http://<your-server-ip>:3000
Register your admin account and create your first survey. Choose from pre-built templates (NPS, CSAT, product feedback, churn survey) or build from scratch. Add questions, set targeting rules to show the survey to specific user segments, and configure display conditions based on user attributes or actions.
Copy the JavaScript SDK snippet and add it to your website or app to serve in-product surveys. Alternatively, share the standalone survey link via email or social media. View responses and analytics in real-time on the Formbricks dashboard, filter by date and user segments, and export data to CSV or integrate via webhooks.
| Port | Purpose |
|---|---|
| 3000 | Formbricks Web UI |
| 5432 | PostgreSQL (internal) |
Formbricks is an open-source experience management platform for building surveys, NPS forms, product feedback widgets, and in-app micro-surveys. It integrates directly into web and mobile apps via SDK, targeting specific user segments with precisely timed survey triggers.
Self-hosting Formbricks keeps all survey response data on your infrastructure, critical for GDPR compliance and data-sensitive industries. Unlike Typeform or SurveyMonkey, there are no response limits or monthly fees — you own everything.
Formbricks runs on port 3000 by default. Place it behind a reverse proxy on port 443 with SSL for production. The database port 5432 should never be exposed publicly.
Alternatives include Typeform (polished, paid), SurveyMonkey (hosted, limited free tier), LimeSurvey (self-hosted, more complex), and Tally (lightweight, freemium). Choose Formbricks for in-app product feedback with behavioral targeting.
Avoid Formbricks if you need a simple one-off public survey without app integration — Tally or Google Forms would be simpler. Also avoid if you lack the infrastructure to maintain a PostgreSQL database and Node.js app.
PrismaTechWork provides end-to-end infrastructure services — from initial deployment and security hardening to ongoing monitoring, automated backups, and dedicated support. Whether you need a single-server setup or a multi-site network, our team ensures your infrastructure is built right, secured properly, and maintained reliably.
Install the Formbricks JS SDK via npm or add it via CDN. Initialize it with your environment ID and optionally identify the user. Then create surveys in the Formbricks dashboard and define trigger conditions — the SDK handles when and how surveys appear.
Formbricks primarily targets web apps via its JS SDK. For mobile, you can use the API to programmatically trigger surveys and display them in a WebView or custom UI. Native mobile SDKs are on the project roadmap.
Yes. Formbricks allows exporting responses as CSV from the dashboard. You can also access responses programmatically via the REST API and send them to external tools using webhooks.
Formbricks requires PostgreSQL. The Docker Compose setup includes a PostgreSQL container automatically. Set the DATABASE_URL environment variable to point to your database instance.
Yes — this is a core Formbricks feature. You define targeting filters based on user attributes such as plan type, sign-up date, or number of sessions that you pass via the SDK. Only users matching the filter will see the survey.
Self-hosting Formbricks means all data stays on your own servers, giving you full control for GDPR compliance. No response data is sent to Formbricks cloud. You are the data controller and can implement your own retention policies.
Yes. Configure webhooks in the Formbricks dashboard under Integrations. When a survey response is submitted, Formbricks sends a POST request with the response payload to your configured endpoint, useful for triggering downstream automations.
Pull the latest image, stop the current container, run migrations if required, and start with the same volumes. Check the changelog on GitHub before upgrading for any breaking changes.