一个轻量级的访客统计服务,自动生成访问与点赞统计徽章,专为 GitHub README 设计。
docker run -d \
--name snow-trace \
-p 3000:3000 \
-e BASE_URL=https://api.ailuntz.com \
-v $(pwd)/data:/app/data \
--restart unless-stopped \
ailuntz/snow-trace:latest
services:
snow-trace:
image: ailuntz/snow-trace:latest
container_name: snow-trace
ports:
- "3000:3000"
volumes:
- ./data:/app/data
environment:
- BASE_URL=https://api.your-domain.com # 修改为你的实际域名
restart: unless-stopped
运行:
docker-compose up -d
[](https://your-domain.com/v1/like/your-username/your-repo/add)
GET /v1/:namespace/:key - 组合徽章(访问 + 点赞 + 按钮)GET /v1/visit/:namespace/:key - 访问统计徽章GET /v1/like/:namespace/:key - 点赞统计徽章GET /v1/like/:namespace/:key/add - 点赞操作GET /health - 健康检查路径参数:
namespace: GitHub 用户名key: 项目/仓库名称重要: 请挂载 /app/data 目录以持久化数据
-v /path/to/your/data:/app/data
数据目录结构:
data/
├── counters.json # 访问计数
├── likes.json # 点赞计数
├── visits/ # 访问日志(按用户分文件)
└── likes_visits/ # 点赞日志(按用户分文件)
容器以 node 用户(UID 1000)运行。如果遇到权限错误(如 EACCES: permission denied),请执行:
# 方法 1: 修改目录所有者为容器用户
sudo chown -R 1000:1000 ./data
# 方法 2: 设置宽松权限(仅开发环境)
sudo chmod -R 777 ./data
| 变量 | 默认值 | 描述 |
|---|---|---|
PORT | 3000 | 服务端口 |
BASE_URL | http://localhost:3000 | ⚠️ 服务基础 URL(必须设置为实际域名) |
重要提示:
BASE_URL 必须设置为你的实际域名(如 https://api.your-domain.com)-e BASE_URL=https://... 或 docker-compose.yml 设置3000 - HTTP 服务端口容器内置健康检查:
curl http://localhost:3000/health
预期响应:
{"status":"ok"}
geoip-lite - IP 地理位置查询dotenv - 环境变量管理latest - 最新稳定版本v1.0.1 - 当前最新版本(支持环境变量配置)v1.0.0 - 初始版本node)完整的 Docker Compose 示例:
services:
snow-trace:
image: ailuntz/snow-trace:latest
container_name: snow-trace
ports:
- "3000:3000"
volumes:
- ./data:/app/data
environment:
- PORT=3000
- BASE_URL=https://api.your-domain.com # ⚠️ 必须修改为你的实际域名
restart: unless-stopped
healthcheck:
test: ["CMD", "node", "-e", "require('http').get('http://localhost:3000/health', (r) => {process.exit(r.statusCode === 200 ? 0 : 1)})"]
interval: 30s
timeout: 3s
retries: 3
start_period: 5s
MIT License - Free to use, attribution appreciated
Built with ❤️ by ailuntz
Content type
Image
Digest
sha256:400d413be…
Size
160.7 MB
Last updated
9 months ago
docker pull ailuntz/snow-trace