7e71455c6b0dc5a3a0642c4a2a42c818f1bb04d4
版本冻结 v0.2.0,固化 2026-09-24 本轮全部变更。 admin-web: - 修复旧物善用管理页缺失样式类 .workspace-view / .view-header / .table-wrap, 此前页面无内边距导致内容被侧边栏遮挡、窄屏表格无横向滚动 - 修复服务统计页缺失样式类 .dashboard-grid / .dashboard-card / .stat-row, 此前 8 个指标卡退化为裸文本堆叠 - 补齐未定义的 --shadow-card 变量(财务编辑面板阴影此前失效) - 侧边栏 13 项导航由手写重复改为 NAV_ITEMS 数据驱动,并按业务顺序重排 - AdminIcon 补齐 coins / phone / volunteer / flag / calendar / recycle 语义图标 - 侧边栏行高与间距压缩使 13 项一屏放下,滚动条隐藏 - 小于等于 760px 断点导航由 display:none 改为横向滚动,移动端恢复可切换 api: - prisma.config.ts 显式加载仓库根 .env,修复 prisma generate / migrate 取不到 DATABASE_URL - dev / bootstrap:admin / test:integration 增加 tsx --env-file-if-exists=../../.env miniprogram: - custom-tab-bar 选中态与申请表单分步流程抽为可测纯函数并补充单测 - 页面完整性门禁脚本增强 工程: - 版本统一升位 0.1.0 到 0.2.0(根与 4 个 workspace 包) - .gitignore 增加 .pnpm-store/、.workbuddy/、微信开发者工具私人配置 与仓库根目录误生成的工程配置,避免本地产物与机器相关信息入库 验证:pnpm lint 通过、pnpm test:unit 19 个用例通过、miniprogram typecheck 通过、 admin-web typecheck 与 build 通过、pnpm install --frozen-lockfile 未改写 lockfile、 无头浏览器端到端登录复验通过、待提交内容密钥扫描无命中。 说明:本轮定位并排除了一起 Prisma 生成目录残缺事故——API 开发进程与并发的 prisma generate 争抢同一输出目录,Windows 文件锁导致只生成 34/56 个模型文件, 使 TS 全量类型解析失败并产生数千条 lint 报错;停止竞争进程后干净重新生成即恢复。 该生成目录已被 .gitignore 忽略,不进入版本库。
乐活公益·暖心服务平台
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%