访客地球仪 — 部署步骤

数据流:访客浏览器 → GoatCounter(存数据,免费含 API)→ 本 Worker(聚合 + 藏 token)→ 网页地球仪。 GitHub Pages 只放静态 widget,数据全在 GoatCounter,重装/换机不丢。

(原计划用 Umami Cloud + umami-maps,但 Umami Cloud 免费档不含 API 权限,故数据源换成 GoatCounter;网页端仍用 umami-maps 的地球仪 widget,本 Worker 把 GoatCounter 数据转成它要的格式。)

一次性设置(约 15 分钟)

1. GoatCounter(存访客数据)

  1. 注册 https://www.goatcounter.com/signup (个人站点免费)
  2. 站点代码自选,记为 YOUR_CODE(站点地址即 YOUR_CODE.goatcounter.com)
  3. 生成 API token:后台右上角用户名 → API → create key
  4. 把 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 测试。