Skip to content

Repository files navigation

FitLog

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 build

npm run build 会将纯静态站点导出到 out/

部署到 Cloudflare Pages

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 或部署账号凭据。示例数据仅用于演示,不代表任何真实个人。

License

MIT

About

Open-source, offline-first workout logging PWA with an Agent-guided setup skill

Resources

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages