访客地球仪 — 部署步骤
数据流:访客浏览器 → GoatCounter(存数据,免费含 API)→ 本 Worker(聚合 + 藏 token)→ 网页地球仪。 GitHub Pages 只放静态 widget,数据全在 GoatCounter,重装/换机不丢。
(原计划用 Umami Cloud + umami-maps,但 Umami Cloud 免费档不含 API 权限,故数据源换成 GoatCounter;网页端仍用 umami-maps 的地球仪 widget,本 Worker 把 GoatCounter 数据转成它要的格式。)
一次性设置(约 15 分钟)
1. GoatCounter(存访客数据)
- 注册 https://www.goatcounter.com/signup (个人站点免费)
- 站点代码自选,记为
YOUR_CODE(站点地址即YOUR_CODE.goatcounter.com) - 生成 API token:后台右上角用户名 → API → create key
- 把
YOUR_CODE填进:_includes/head/custom.html的data-goatcounter(追踪脚本)- 本目录
wrangler.toml的GC_SITE
2. 部署 Worker(代理端点)
cd worker
npm install
npx wrangler login # 打开浏览器登录 Cloudflare(免费)
npx wrangler secret put GC_TOKEN # 粘贴第 1 步的 API token
npm run deploy
部署成功后输出 worker 地址,形如 https://umami-globe.<子域>.workers.dev。
3. 接回网页
把 _includes/author-profile.html 里 widget 的
data-endpoint="https://umami-globe.YOUR_SUBDOMAIN.workers.dev"
改成上一步的实际地址。
4. 验证
curl https://umami-globe.<子域>.workers.dev
# 返回 {"markers": [...], "totalVisitors": N, "totalCountries": M} 即成功
本地预览:npx wrangler dev,端点临时改为 http://localhost:8787 测试。