1.9 KiB
进度台:个人进度监视系统
一个面向单用户、单 worker 的中文个人进度面板。任务、每日事实、修订快照和可重建月归档均以 JSON 保存,适合 Docker 部署在服务器上,并通过反向代理公开 HTTPS 访问。
快速开始
本机需要 Python 3.11+。在当前目录执行:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r requirements.txt
uvicorn app.main:app --reload
浏览器打开 http://127.0.0.1:8000。不设置密码时为本机免登录模式;生产环境请在 .env 中设置 PPM_PASSWORD_HASH,或者临时设置 PPM_PASSWORD。
Docker
cp .env.example .env
docker compose up -d --build
默认只绑定 127.0.0.1:8000,建议由 Nginx/Caddy 终止 HTTPS 后反代到该端口。只有单副本、单 worker 受支持;JSON 仓储使用进程锁和同目录原子替换,数据卷请纳入主机备份。
数据与契约
data/tasks/<taskId>.json 保存当前任务,data/revisions/<taskId>/<revision>.json 保存每次属性修订,data/daily/<year>/<date>.json 保存不可移动的每日事实,data/archive/<year>/<month>.json 是可重建汇总。任务 ID 和指标 ID 稳定,改名不会破坏历史。
metrics[] 可同时含 checkin、quantity、duration;周期支持 day、week、month、lifetime;target: null 表示无上限,时长统一用整数秒。config/layouts/home.json 与 task-detail.json 只允许白名单组件,非法布局会回退到内置默认值。
每日 0 点只关闭事实并重建归档,不删除原始记录。启动时会补跑遗漏日期;补录历史会触发对应月份重建。所有写接口带版本号冲突检测,任务删除默认为软删,后台可恢复或二次确认永久删除。
测试
pytest -q
路线图:备份恢复向导、多副本协调、跨进程压力测试和更丰富布局编辑器。