main
将当前工作区固化为 v1.1.0 里程碑,并推送到自托管仓库。 同步升 workspace 五个包版本 0.2.0 → 1.1.0(root / apps/api / apps/admin-web / apps/miniprogram / packages/contracts)。 质量门禁(Node 24.21.0 + pnpm 11): - eslint --max-warnings=0 ✅(exit 0) - prisma generate ✅(56/56 模型文件齐全) - tsc --noEmit(apps/api)✅(exit 0) - test:unit:11/11 测试通过;src/auth/password.service.spec.ts 因本机 Windows 应用控制 策略拦截 argon2 原生模块(argon2.glibc.node)加载而 suite 失败——属环境限制,非代码 缺陷。生产 API 运行时 argon2 可正常加载(登录链路此前已验证返回 201),该限制仅影响 本机测试 worker 进程加载 node_modules 中的原生二进制。 未验证项(打标签 ≠ 生产发布):UAT、E2E P0、真机测试、Ubuntu 主机预检、TLS、 离站备份均未验证,保持未勾选,不假绿。
乐活公益·暖心服务平台
V1.0 使用 TypeScript 全栈 monorepo,包含微信小程序、Web 管理后台、模块化单体 API 与共享契约。
环境要求
- Node.js 24 LTS
- pnpm 11
- Docker 29+ 与 Docker Compose
初始化
- 复制
.env.example为.env,仅填写本地开发值,禁止提交真实密钥。 - 运行
pnpm install。 - 为
SESSION_TOKEN_PEPPER、AUDIT_IP_HASH_KEY生成独立随机值,为FIELD_ENCRYPTION_KEY生成 32 字节随机值并以 Base64 保存;填写微信开发配置和精确的ADMIN_WEB_ORIGIN。 - 运行
docker compose up -d启动 MySQL、Redis、MinIO。 - 运行
pnpm --filter @lehuo/api db:deploy执行 migration。 - 首次部署时通过环境变量提供
BOOTSTRAP_ADMIN_USERNAME、BOOTSTRAP_ADMIN_PASSWORD、BOOTSTRAP_ADMIN_DISPLAY_NAME,运行pnpm --filter @lehuo/api bootstrap:admin;已有后台凭据时命令会拒绝重复初始化。 - 运行
pnpm --filter @lehuo/api dev启动 API,健康检查地址为http://localhost:3000/health,Swagger 地址为http://localhost:3000/api/docs。 - 运行
pnpm --filter @lehuo/admin-web dev启动管理后台。 - 配置小程序 API 地址后,使用微信开发者工具导入
apps/miniprogram。
后台会话使用 HttpOnly Cookie,不存入 localStorage;生产环境必须启用 HTTPS 并设置 ADMIN_COOKIE_SECURE=true。密钥和首次管理员密码不得提交到仓库。
质量命令
pnpm lint
pnpm typecheck
pnpm test:unit
pnpm test:integration
pnpm build
集成测试只允许连接数据库名为 lehuo_test 的 MySQL。可先运行 docker compose --profile test up -d mysql-test,再设置 TEST_DATABASE_URL 后执行测试。
项目约束、当前阶段和决策分别见 docs/01_PROJECT_CONSTITUTION.md、docs/10_TASK_STATE.md、docs/11_DECISIONS.md。
Ubuntu 26.04 云服务器部署
Ubuntu 26.04 LTS 单机部署包位于 infra/ubuntu/,提供 Docker 官方源安装、生产环境密钥生成、双域名 TLS、私有 MySQL/Redis/MinIO、API/管理后台镜像、migration、备份恢复、冒烟和回滚脚本。完整步骤见 infra/ubuntu/README.md。
该部署包不替代 staging、UAT、微信合法域名/真实 AppID、隐私法务、告警接收与异地备份验收;外部项未完成前不得宣称已生产上线。
Languages
TypeScript
76.3%
Vue
17.9%
CSS
3%
Shell
1.7%
PowerShell
0.5%
Other
0.6%