Self-host Formbricks
updated Sep 2026deployed by usprices checked · Jul 2026Install verified on Ubuntu 26.04 · Sep 2026 · how we test
We earn commissions when you shop through the links below. Full disclosure →
An open-source survey platform for link, website and in-app surveys, with a response dashboard and integrations. The core is AGPL-3.0; enterprise features such as SSO and role management need a paid license key.
Key facts
CategoryForms & surveys
LicenseAGPL-3.0
StackTypeScript, Next.js, PostgreSQL
Min RAM4096 MB
Official imageyes
Measured idle RAM866 MB
Difficulty
What you need
- Any VPS with at least 4096 MB of RAM
- A domain you control — most self-hosted setups need HTTPS in front of them
- About an afternoon — budget time for troubleshooting
Where to host itaffiliate disclosure
Hetzner Cloudrun it on
From $23.59/mo · 2 vCPU / 4 GB / 80 GB · EU + USKamaterafree trial
From $4/mo · 1 vCPU / 1 GB / 20 GB · US + EU + AsiaDigitalOceanalso works on
From $6/mo · 1 vCPU / 1 GB / 25 GB · US + EU + AsiaPaid link — we earn a commission if you shop through it.
Install
Run these commands on your server:
# Formbricks — official production compose (Postgres, Valkey, Hub, Cube, SpiceDB)
B=https://raw.githubusercontent.com/formbricks/formbricks/stable/docker
mkdir -p cube/schema
curl -fsSL -o docker-compose.yml $B/docker-compose.yml
curl -fsSL -o authzed-postgres-bootstrap.sh $B/authzed-postgres-bootstrap.sh
chmod 700 authzed-postgres-bootstrap.sh
curl -fsSL -o cube/cube.js $B/cube/cube.js
curl -fsSL -o cube/schema/FeedbackRecords.js $B/cube/schema/FeedbackRecords.js
PG=$(openssl rand -hex 32)
cat > .env <<EOF
WEBAPP_URL=http://SERVER_IP:3000
BETTER_AUTH_URL=http://SERVER_IP:3000
POSTGRES_PASSWORD=$PG
POSTGRES_PASSWORD_URL_ENCODED=$PG
BETTER_AUTH_SECRET=$(openssl rand -hex 32)
ENCRYPTION_KEY=$(openssl rand -hex 32)
CRON_SECRET=$(openssl rand -hex 32)
HUB_API_KEY=$(openssl rand -hex 32)
CUBEJS_API_SECRET=$(openssl rand -hex 32)
AUTHZED_TOKEN=$(openssl rand -hex 32)
AUTHZED_DATABASE_PASSWORD=$(openssl rand -hex 32)
EOF
chmod 600 .env
docker compose up -d
# open http://SERVER_IP:3000 and create the first userMore self-hosted tools
Forms & surveys
HeyForm
TypeScriptNestJSReactMongoDB
easyRead guide →
Team chat
Mattermost
GoReactPostgreSQL
moderateRead guide →
AI Coding Agents
OpenHands
TypeScriptReactPython
moderateRead guide →
Web analytics
OpenPanel
TypeScriptNext.jsFastifyPostgreSQLClickHouseRedis
moderateRead guide →