搬瓦工部署 Countly 移动应用分析平台教程

Countly 是一款专注于移动应用和 Web 应用的开源分析平台,它是 Firebase Analytics 和 Flurry 的自托管替代品。Countly 提供丰富的移动端 SDK,支持 iOS、Android、React Native、Flutter 等平台,同时也支持 Web 和桌面应用。通过自托管 Countly,你可以完全掌控用户数据,满足数据合规和隐私保护的要求。本文将介绍如何在搬瓦工 VPS 上部署 Countly。部署前请确保已安装 Docker 和 Docker Compose

一、Countly 核心功能

  • 用户分析:活跃用户、新用户、会话时长、使用频率等核心指标。
  • 事件追踪:自定义事件跟踪,支持事件属性和计数。
  • 崩溃报告:自动收集应用崩溃信息,包含设备和系统版本信息。
  • 推送通知:集成 APNs 和 FCM,直接从控制台发送推送。
  • 留存分析:按天或按周分析用户的回访率。
  • 用户画像:追踪个体用户的行为轨迹和属性。
  • 实时数据:实时显示当前在线用户和活动数据。

二、系统要求

  • 操作系统:Ubuntu 20.04+ 或 Debian 11+。
  • 内存:至少 2GB,推荐 4GB。
  • 磁盘:至少 10GB 可用空间。
  • Docker:已安装 Docker 和 Docker Compose。

搬瓦工 VPS 方案选择请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享 6.77% 折扣,购买入口:bwh81.net

三、创建项目目录

mkdir -p /opt/countly && cd /opt/countly

四、编写 Docker Compose 配置

cat > /opt/countly/docker-compose.yml <<'EOF'
version: '3.8'

services:
  countly-mongo:
    image: mongo:6.0
    restart: always
    volumes:
      - countly_mongo_data:/data/db
    command: --wiredTigerCacheSizeGB 0.5

  countly-api:
    image: countly/api:latest
    restart: always
    environment:
      COUNTLY_CONFIG__MONGODB_HOST: countly-mongo
      COUNTLY_CONFIG__MONGODB_DB: countly
      COUNTLY_PLUGINS: "mobile,web,desktop,plugins,density,locale,browser,sources,views,crashes,logger,systemlogs,populator,reports,crashes,star-rating,slipping-away-users,compare,server-stats,dbviewer,times-of-day,compliance-hub,alerts,onboarding,consolidate,remote-config,hooks,dashboards,data-manager,heatmaps,retention_segments"
    depends_on:
      - countly-mongo

  countly-frontend:
    image: countly/frontend:latest
    restart: always
    ports:
      - "6001:6001"
    environment:
      COUNTLY_CONFIG__MONGODB_HOST: countly-mongo
      COUNTLY_CONFIG__MONGODB_DB: countly
    depends_on:
      - countly-api
      - countly-mongo

volumes:
  countly_mongo_data:
EOF

五、启动服务

cd /opt/countly
docker compose up -d

等待服务启动后,访问 http://your_server_ip:6001,按照向导创建管理员账户。

六、创建应用并接入 SDK

在 Countly 控制台中创建应用,获取 App Key。

Android(Java/Kotlin)

// build.gradle 添加依赖
implementation 'ly.count.android:sdk:23.8.0'

// Application 类中初始化
CountlyConfig config = new CountlyConfig(this, "YOUR_APP_KEY", "https://your_domain.com");
config.setDeviceId(DeviceId.Type.OPEN_UDID);
Countly.sharedInstance().init(config);

iOS(Swift)

// 使用 CocoaPods: pod 'Countly'
import Countly

let config = CountlyConfig()
config.appKey = "YOUR_APP_KEY"
config.host = "https://your_domain.com"
config.features = [CLYFeature.crashReporting, CLYFeature.pushNotifications]
Countly.sharedInstance().start(with: config)

Web(JavaScript)

// npm install countly-sdk-web
import Countly from 'countly-sdk-web';

Countly.init({
  app_key: 'YOUR_APP_KEY',
  url: 'https://your_domain.com',
  session_update: 60,
  use_session_cookie: true,
});

Countly.track_sessions();
Countly.track_pageview();
Countly.track_clicks();
Countly.track_scrolls();

七、配置反向代理

cat > /etc/nginx/sites-available/countly <<'EOF'
server {
    listen 80;
    server_name your_domain.com;

    location / {
        proxy_pass http://127.0.0.1:6001;
        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/countly /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d your_domain.com

八、追踪自定义事件

// JavaScript 示例
Countly.add_event({
  key: 'purchase',
  count: 1,
  sum: 49.99,
  segmentation: {
    product: 'VPS Plan',
    category: 'hosting',
  }
});

九、常见问题

MongoDB 内存占用高

通过 --wiredTigerCacheSizeGB 参数限制 MongoDB 的缓存大小。2GB 内存的 VPS 建议设置为 0.5GB。

SDK 数据未上报

检查 App Key 和服务器地址是否正确,确保 VPS 的端口已放行。在 Countly 控制台的日志插件中查看接收到的原始请求。

总结

Countly 是移动应用分析领域最成熟的开源方案,丰富的移动端 SDK 和内置的推送通知功能使其成为 App 开发者的首选。如果你需要更全面的产品分析能力(包括 A/B 测试和功能开关),可以参考 PostHog。选购搬瓦工 VPS 使用优惠码 NODESEEK2026 可享 6.77% 折扣。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。