f3737c80bea7b503d1a54dd76e7ddbed53ec5011
乐活公益·暖心服务平台
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。
Languages
TypeScript
76.3%
Vue
17.9%
CSS
3%
Shell
1.7%
PowerShell
0.5%
Other
0.6%