You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GrowthBook切换ClickHouse Ubuntu部署域名配置及操作咨询

GrowthBook切换ClickHouse存储实操指南

一、Ubuntu Server环境适配ClickHouse的GrowthBook安装及自有域名绑定流程

  • 前置依赖安装
    先更新系统软件包,安装所需基础组件:
    apt update && apt upgrade -y
    apt install -y apt-transport-https ca-certificates curl gnupg-agent software-properties-common nginx certbot python3-certbot-nginx
    
    完成后安装Docker、Docker Compose组件,设置Docker开机自启,通过docker --version、docker compose version命令验证安装结果正常。
  • 部署目录初始化
    创建统一的服务持久化目录,避免数据丢失:
    mkdir -p /opt/growthbook/clickhouse/{data,logs}
    mkdir -p /opt/growthbook/app
    
  • GrowthBook服务编排配置
    进入/opt/growthbook/app目录,创建docker-compose.yml配置文件,同时配置已有的MongoDB连接、ClickHouse连接参数,注意使用v2.7及以上版本的GrowthBook镜像才原生支持ClickHouse作为指标存储:
    version: "3.7"
    services:
      growthbook:
        image: growthbook/growthbook:latest
        ports:
          - "127.0.0.1:3000:3000"
        environment:
          - NODE_ENV=production
          - MONGODB_URI=mongodb://替换为你已有的MongoDB连接地址/growthbook
          - CLICKHOUSE_HOST=clickhouse
          - CLICKHOUSE_PORT=8123
          - CLICKHOUSE_DB=growthbook_metrics
          - CLICKHOUSE_USER=growthbook_ck
          - CLICKHOUSE_PASSWORD=替换为自定义的强访问密码
          - APP_ORIGIN=https://替换为你绑定的自有域名
        depends_on:
          - clickhouse
        restart: unless-stopped
      clickhouse:
        image: clickhouse/clickhouse-server:23.8-lts
        ulimits:
          nofile:
            soft: 262144
            hard: 262144
        volumes:
          - /opt/growthbook/clickhouse/data:/var/lib/clickhouse
          - /opt/growthbook/clickhouse/logs:/var/log/clickhouse-server
        restart: unless-stopped
    
    配置完成后在当前目录执行docker compose up -d启动所有服务,通过docker compose logs -f growthbook查看运行日志,确认MongoDB、ClickHouse连接无报错即可。
  • 自有域名绑定配置
    1. 先将自有域名的A记录解析到Ubuntu服务器的公网IP地址。
    2. 编写Nginx反向代理配置,新建配置文件/etc/nginx/sites-available/growthbook,内容如下:
    server {
        listen 80;
        server_name 替换为你的自有域名;
        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;
        }
    }
    
    1. 执行以下命令启用配置、重载Nginx:
    ln -s /etc/nginx/sites-available/growthbook /etc/nginx/sites-enabled/
    nginx -t
    systemctl reload nginx
    
    1. 执行certbot --nginx -d 替换为你的自有域名,按提示完成HTTPS证书申请,证书会自动配置续期,无需手动操作。

二、ClickHouse建库、专属访问用户正确操作步骤

你之前执行失败的核心原因是直接套用了MySQL语法逻辑,且命令是WordPress场景的MySQL初始化语句,和ClickHouse的权限体系、语法规则完全不兼容。ClickHouse不存在'用户名'@'访问地址'的用户定义格式,也不需要执行FLUSH PRIVILEGES触发权限生效。

  • 进入ClickHouse命令行客户端
    服务启动后执行以下命令进入交互终端,容器名称如果和示例不一致,可以通过docker ps查看实际的ClickHouse容器名替换:
    docker exec -it app-clickhouse-1 clickhouse-client
    
  • 创建专用数据库
    执行以下命令创建GrowthBook指标存储专用库:
    CREATE DATABASE IF NOT EXISTS growthbook_metrics;
    
  • 创建专属访问用户
    按最小权限原则创建用户,仅允许本地、Docker内网段访问,使用SHA256加密存储密码:
    CREATE USER IF NOT EXISTS growthbook_ck IDENTIFIED WITH sha256_password BY '替换为你之前配置的强密码' HOST LOCAL, HOST '172.16.0.0/12';
    
  • 授权操作
    给新建用户分配目标数据库的全部操作权限:
    GRANT ALL PRIVILEGES ON growthbook_metrics.* TO growthbook_ck;
    
  • 验证配置
    退出当前客户端,执行以下命令用新建用户登录测试,能正常进入终端、执行SHOW TABLES;无报错即配置生效:
    docker exec -it app-clickhouse-1 clickhouse-client -u growthbook_ck --password 你设置的密码 -d growthbook_metrics
    
    测试完成后输入exit退出终端即可。

注意:GrowthBook核心业务数据(用户信息、实验配置、特征标记等)依然存储在原有MongoDB中,ClickHouse仅承担实验事件存储、指标计算的时序查询负载,切换过程不会丢失原有业务数据。

内容的提问来源于stack exchange,提问作者AMRIT SHAHI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 19:15:47