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 进入官网购买。