搬瓦工部署 Formbricks 表单问卷工具教程
Formbricks 是一款开源的体验管理平台,专注于产品内调查和用户反馈收集。它是 Typeform、SurveyMonkey 等商业调查工具的自托管替代品,支持在应用内弹出问卷(In-app Surveys)和通过链接分享的独立问卷(Link Surveys)。Formbricks 的核心优势在于可以根据用户行为和属性精准触发问卷,在正确的时间向正确的用户提出正确的问题。本文将介绍如何在搬瓦工 VPS 上部署 Formbricks。部署前请确保已安装 Docker 和 Docker Compose。
一、Formbricks 核心功能
- 应用内调查:在产品中以弹窗或侧边栏形式展示问卷。
- 链接调查:生成独立的问卷链接,通过邮件或社交媒体分享。
- 用户分群:根据用户属性和行为定义目标用户群体。
- 触发条件:基于页面访问、按钮点击、代码事件等条件触发问卷。
- 问题类型:单选、多选、评分、NPS、开放文本、日期选择等。
- 逻辑分支:根据用户回答展示不同的后续问题。
- 集成:支持 Webhook、Slack、Notion、Google Sheets 等集成。
二、系统要求
- 操作系统:Ubuntu 20.04+ 或 Debian 11+。
- 内存:至少 1GB,推荐 2GB。
- 磁盘:至少 5GB 可用空间。
- Docker:已安装 Docker 和 Docker Compose。
搬瓦工 VPS 方案推荐参考 全部方案,购买时使用优惠码 NODESEEK2026 可享 6.77% 折扣,购买入口:bwh81.net。
三、创建项目目录
mkdir -p /opt/formbricks && cd /opt/formbricks
四、创建环境变量文件
cat > /opt/formbricks/.env <<'EOF'
DATABASE_URL=postgresql://formbricks:your_db_password@formbricks-db:5432/formbricks
NEXTAUTH_SECRET=your_nextauth_secret
NEXTAUTH_URL=https://your_domain.com
ENCRYPTION_KEY=your_encryption_key_here
WEBAPP_URL=https://your_domain.com
PRIVACY_URL=https://your_domain.com/privacy
TERMS_URL=https://your_domain.com/terms
SIGNUP_DISABLED=0
EMAIL_VERIFICATION_DISABLED=1
MAIL_FROM=noreply@your_domain.com
SMTP_HOST=smtp.example.com
SMTP_PORT=587
SMTP_USER=your_smtp_user
SMTP_PASSWORD=your_smtp_password
SMTP_SECURE_ENABLED=1
EOF
生成密钥:
# NEXTAUTH_SECRET
openssl rand -hex 32
# ENCRYPTION_KEY(必须是 32 字符的十六进制)
openssl rand -hex 16
五、编写 Docker Compose 配置
cat > /opt/formbricks/docker-compose.yml <<'EOF'
version: '3.8'
services:
formbricks-db:
image: postgres:15
restart: always
environment:
POSTGRES_DB: formbricks
POSTGRES_USER: formbricks
POSTGRES_PASSWORD: your_db_password
volumes:
- formbricks_db_data:/var/lib/postgresql/data
formbricks:
image: formbricks/formbricks:latest
restart: always
ports:
- "3000:3000"
env_file: .env
depends_on:
- formbricks-db
volumes:
- formbricks_uploads:/home/nextjs/apps/web/uploads
volumes:
formbricks_db_data:
formbricks_uploads:
EOF
六、启动服务
cd /opt/formbricks
docker compose up -d
访问 http://your_server_ip:3000,注册管理员账户。首位注册用户自动成为管理员。
七、创建第一个调查
登录 Formbricks 后台,按照以下步骤创建调查:
- 点击 Create Survey,选择调查类型(应用内或链接)。
- 使用内置模板或从空白开始创建问卷。
- 添加问题,配置逻辑分支。
- 设置触发条件(仅应用内调查)。
- 预览并发布调查。
八、接入前端 SDK
要在产品中展示应用内调查,需要接入 Formbricks JavaScript SDK:
// npm install @formbricks/js
import formbricks from "@formbricks/js";
formbricks.init({
environmentId: "your_environment_id",
apiHost: "https://your_domain.com",
});
// 标识用户(用于分群)
formbricks.setUserId("user_123");
formbricks.setAttribute("plan", "premium");
formbricks.setAttribute("country", "CN");
// 追踪自定义事件(用于触发问卷)
formbricks.track("purchase_completed");
九、配置反向代理
cat > /etc/nginx/sites-available/formbricks <<'EOF'
server {
listen 80;
server_name your_domain.com;
client_max_body_size 20M;
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
EOF
ln -s /etc/nginx/sites-available/formbricks /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d your_domain.com
十、集成第三方服务
在调查设置的 Integrations 页面,可以配置将问卷回复自动同步到:
- Webhook:将每条回复发送到指定 URL。
- Slack:实时收到新回复的通知。
- Google Sheets:自动将回复写入电子表格。
- Notion:将回复存储到 Notion 数据库。
十一、常见问题
调查未在应用中弹出
确认 SDK 的 environmentId 和 apiHost 配置正确。检查触发条件是否满足,用户是否属于目标分群。
注册页面报错
确保 NEXTAUTH_URL 和 WEBAPP_URL 与实际访问域名一致,包括协议(http/https)。
总结
Formbricks 是一款功能丰富的开源调查工具,其应用内调查功能特别适合 SaaS 产品收集用户反馈。通过精准的触发条件和用户分群,你可以在最佳时机向用户展示问卷,提高回复率和数据质量。如果你还需要产品分析能力,可以将 Formbricks 与 PostHog 配合使用。选购搬瓦工 VPS 使用优惠码 NODESEEK2026 可享 6.77% 折扣。