Skip to content

Repository files navigation

ResetLife

当前架构

项目已经切换为 Astro/Vue 前端 + Go API 后端

  • / 是“复位”首页,定位为重建人生系统,并把产品收敛成“自我定位 / 自我修复”两块。
  • /state 是卡片式自我定位页,通过心理秩序、认知秩序、行动秩序三维识别生成秩序结构图。
  • /path 是复位报告页,承接自我定位结果,并给出优先自我修复方向。
  • /psychology/cognition/action 是自我修复里的三大方向:心理复位、认知复位、行动复位。
  • /records 是我的复位记录页,用来看到每一次自我定位、修复动作和复盘记录。
  • /community 是复位社区页,用来看到其他用户公开的复位历程。
  • /review 是复盘再校准页,用来判断有没有好一点、哪里卡住了、下一轮是否调整方向。
  • /projects/slimming 是跑步瘦身助手的工具详情页,作为行动复位中的工具入口保留。
  • /app/slimming 是跑步瘦身助手应用入口。
  • Go 服务提供 /api/*,同时在生产模式下可以托管 frontend/dist 静态文件。
  • 宝塔部署发布包位于 dist/releases/*-go-astro-*.tar.gz

复位的产品硬约束单独维护在 doc/product-constraints.md,包括自我定位 / 自我修复两块结构、选择题优先、可选自定义输入、面对面对话式文案、卡片式状态对话、三维秩序识别、避免医疗化表达等规则。

跑步瘦身助手仍是一个面向个人和小范围私有使用的健康记录工具,覆盖账号隔离、健康记录、跑步记录、目标管理、历史编辑、提醒规则、SMTP 邮件提醒和管理员用户管理。

技术栈

  • Astro + Vue
  • Go
  • SQLite
  • Node.js 脚本用于本地构建、检查和发布打包
  • 宝塔 Nginx:静态文件 + /api/ 反向代理

本地开发

环境要求:

  • Node.js >= 24
  • npm
  • Go

常用命令:

npm install
npm --prefix frontend install
npm run dev
npm run check
npm run build
npm run release

npm run dev 会同时启动 Go API 和 Astro dev server。npm run start 会启动 Go 服务,并把 STATIC_DIR 指向 frontend/dist

宝塔部署

本地生成发布包:

npm run release

发布包包含:

  • frontend/public/:Astro 开发期静态资源;发布包内会生成 public/ 静态站点目录
  • api/resetlife-api:Linux Go API 二进制
  • scripts/restart-api.sh:加载 .env 后重启 API
  • nginx-site.conf.example:宝塔/Nginx 反代示例
  • README_DEPLOY.md:服务器部署说明

典型服务器目录:

/www/wwwroot/reset-life/
  current -> releases/<version>
  releases/
  data/app.sqlite

宝塔站点根目录指向:

/www/wwwroot/reset-life/current/public

Nginx 需要把 /api/ 反向代理到 Go API,例如:

location /api/ {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
}

可选自动部署:

DEPLOY_HOST=your.server DEPLOY_USER=root npm run deploy:cloud

部署脚本会上传最新 Go/Astro 发布包、切换 current 软链、写入或复用 .env、重启 Go API,并检查 /api/healthz

环境变量

Go API 常用环境变量:

API_ADDR=127.0.0.1:8080
DATA_DIR=/www/wwwroot/reset-life/data
SQLITE_PATH=/www/wwwroot/reset-life/data/app.sqlite
INTERNAL_REMINDER_TOKEN=change-this-token
REMINDER_TIME_ZONE=Asia/Shanghai
REMINDER_CHECK_INTERVAL_MS=60000
REMINDER_CHECK_DISABLED=1

目录结构

frontend/  Astro/Vue 前端
backend/   Go API、SQLite 存储和业务服务
scripts/  开发、启动、发布和云部署脚本
tests/    Go/Astro 架构与脚本回归测试
doc/      规划、部署和开发记录
dist/     本地构建与发布产物

验证

提交前至少运行:

npm run check
npm run build

发布前运行:

npm run release

About

A private health-management web app for weight, running records, goals, and reminders.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages