FitLog 是一个开源、离线优先的训练记录 PWA。它可以直接在浏览器里记录力量训练、有氧、RPE、休息时间和训练随笔,并通过 GitHub 私有仓库同步训练计划与结果。
在线使用:https://fitlog-dd.pages.dev/
- 不配置账号:使用自由训练或手动导入计划,记录保存在当前浏览器。
- 配置 GitHub:从专用私有仓库读取计划,并把训练结果写回仓库。
- 让 Agent 带你配置:把
docs/wechat-share-copy.md中的启动文字复制给支持联网的 Agent。
完整操作见 USER_GUIDE.md。
- GitHub Token 只保存在当前浏览器的 IndexedDB,不会提交到本仓库或发送到 FitLog 服务器;FitLog 本身是纯静态网页。
- 运行在同一网页域名下的 JavaScript 能读取浏览器保存的 Token。请只使用 Fine-grained Token,限定到一个 FitLog 专用私有仓库,只授予 Contents 读写权限,并设置较短有效期。
- 不要把 Token 发送给 Agent、聊天窗口、命令行日志或任何人。只在 FitLog 设置页中由本人粘贴。
- 清除浏览器网站数据会删除本地历史和设置。重要记录应同步到自己的私有仓库或手动导出。
默认目录约定:
fitness/exchange/outbox/ # Agent 写入训练计划
fitness/exchange/inbox/ # FitLog 写入训练结果
计划 schema 为 my_life.fitness.plan。训练结果 schema 为 my_life.fitness.result。
要求 Node.js 20.9 或更高版本。
npm ci
npm run dev
npm run lint
npm run buildnpm run build 会将纯静态站点导出到 out/。
npm run build
npx wrangler pages deploy out --project-name <your-project-name>仓库中的 wrangler.toml 已将 Pages 构建目录设为 out/。
- Next.js 16、React 19
- Zustand、Dexie / IndexedDB
- Tailwind CSS 4、dnd-kit
- Cloudflare Pages 静态部署
仓库不包含用户训练记录、GitHub Token 或部署账号凭据。示例数据仅用于演示,不代表任何真实个人。