Ackee 自托管网站分析工具部署

Ackee 是一款基于 Node.js 的自托管网站分析工具,界面美观现代,注重用户隐私。它不使用 Cookie,通过匿名化的方式收集访问数据,提供清晰直观的数据可视化仪表板。Ackee 使用 MongoDB 存储数据,并提供 GraphQL API 方便二次开发。本文将在搬瓦工 VPS 上通过 Docker 部署 Ackee。

一、Docker 部署(推荐)

确保已安装 Docker 和 Docker Compose

1.1 创建项目目录和配置

mkdir -p /opt/ackee && cd /opt/ackee

创建 docker-compose.yml

version: '3.8'

services:
  ackee:
    image: electerious/ackee:latest
    restart: always
    ports:
      - "3002:3000"
    environment:
      - ACKEE_MONGODB=mongodb://mongo:27017/ackee
      - ACKEE_USERNAME=admin
      - ACKEE_PASSWORD=你的强密码
    depends_on:
      - mongo

  mongo:
    image: mongo:7
    restart: always
    volumes:
      - mongo_data:/data/db

volumes:
  mongo_data:
docker compose up -d

1.2 配置 Nginx 反向代理

server {
    listen 80;
    listen 443 ssl http2;
    server_name ackee.example.com;

    ssl_certificate /etc/letsencrypt/live/ackee.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/ackee.example.com/privkey.pem;

    # 关键:设置正确的 CORS 头
    location / {
        proxy_pass http://127.0.0.1:3002;
        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;
    }
}
nginx -t && systemctl reload nginx

二、添加网站和追踪代码

访问 https://ackee.example.com,使用配置的用户名和密码登录。在"Settings"中添加要监控的网站域名,获得一个唯一的 Domain ID。

将追踪代码添加到你的网站:

<script async src="https://ackee.example.com/tracker.js"
  data-ackee-server="https://ackee.example.com"
  data-ackee-domain-id="你的Domain-ID">
</script>

2.1 详细模式追踪

Ackee 支持"详细模式",可以追踪更多用户行为数据(如访问时长):

<script async src="https://ackee.example.com/tracker.js"
  data-ackee-server="https://ackee.example.com"
  data-ackee-domain-id="你的Domain-ID"
  data-ackee-opts='{ "detailed": true }'>
</script>

三、GraphQL API

Ackee 提供了完整的 GraphQL API,可以编程方式获取统计数据:

# 获取认证令牌
curl -X POST https://ackee.example.com/api \
  -H "Content-Type: application/json" \
  -d '{"query": "mutation { createToken(input: { username: \"admin\", password: \"你的密码\" }) { payload { id } } }"}'

# 查询域名统计
curl -X POST https://ackee.example.com/api \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -d '{"query": "{ domains { id title statistics { views { id count } } } }"}'

四、自定义事件追踪

// 创建 Ackee 追踪实例
const instance = ackeeTracker.create('https://ackee.example.com', {
  detailed: true,
});

// 追踪自定义动作
instance.action('ACTION_ID', {
  key: '购买按钮',
  value: 1,
});

五、CORS 跨域配置

如果追踪脚本所在网站和 Ackee 服务器不在同一域名,需要正确配置 CORS。在 docker-compose.yml 中添加环境变量:

environment:
  - ACKEE_ALLOW_ORIGIN=https://your-website.com,https://another-site.com

或者允许所有来源(不推荐生产环境):

  - ACKEE_ALLOW_ORIGIN=*

六、数据备份与维护

# 备份 MongoDB 数据
docker exec ackee-mongo-1 mongodump --db ackee --archive=/tmp/ackee_backup.gz --gzip
docker cp ackee-mongo-1:/tmp/ackee_backup.gz /root/backups/ackee_$(date +%Y%m%d).gz

# 恢复数据
docker cp /root/backups/ackee_backup.gz ackee-mongo-1:/tmp/
docker exec ackee-mongo-1 mongorestore --db ackee --archive=/tmp/ackee_backup.gz --gzip --drop

# 更新 Ackee
cd /opt/ackee
docker compose pull
docker compose up -d

七、与其他分析工具对比

Ackee 的优势在于美观的界面和 GraphQL API。相比 GoatCounter 需要 MongoDB 依赖,资源消耗稍高;相比 Matomo 功能更精简但部署更简单。

总结

Ackee 是一款设计精美、注重隐私的网站分析工具。在搬瓦工 VPS 上通过 Docker 一键部署,配合 GraphQL API 可以灵活地将统计数据集成到任何应用中。如果你需要更轻量的方案,推荐 GoatCounter;需要更全面的功能,推荐 Matomo。选购搬瓦工 VPS 请查看 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的折扣,通过 bwh81.net 进入官网购买。

关于本站

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

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。