# CTMS 项目快速上手 ## 生产部署 - 生产入口:`docker-compose.yaml` - 初始化方式:`docker compose run --rm backend-init` - 启动方式:`docker compose up -d --build` - 对外入口:Nginx 提供前端静态资源,并反代后端 API - 数据库 schema 来源:Alembic migration,不再依赖 `database/init.sql` - 默认无任何 demo 数据;生产初始化只确保固定管理员 `admin@huapont.cn / admin123` 存在 - 验证方式: - `docker compose config` - `curl -i http://127.0.0.1/` - `curl -i http://127.0.0.1/health` ## 腾讯云私有镜像仓库 - GitHub Actions 会在推送到 `dev`、`release`、`release/*` 和 `main` 时,通过 SSH 连接腾讯云服务器,在服务器本机完成 `backend` 和 `nginx` 镜像的构建与推送。 - 私有仓库地址默认使用 `${REGISTRY_HOST}`,仓库命名为 `${REGISTRY_HOST}/ctms/ctms-backend` 和 `${REGISTRY_HOST}/ctms/ctms-nginx`。 - `dev` 分支发布 `dev-latest` 和 `dev-`,`release` 分支发布 `rc-release` 和 `rc-`,`release/*` 分支发布 `rc-` 和 `rc-`,`main` 分支发布 `latest` 和 `sha-`。 - 部署机需要先 `docker login :5000`,并使用私有仓库的 `htpasswd` 账号密码完成认证。 - `backend-init` 复用 `BACKEND_IMAGE`,所以生产机可在设置 `REGISTRY_HOST`,或直接指定 `BACKEND_IMAGE` 和 `NGINX_IMAGE` 后执行 `docker compose pull && docker compose run --rm backend-init && docker compose up -d`。 - 本地开发仍可继续使用 `docker compose up -d --build` 走本地构建。 ## 账号与注册 - 初始化管理员:`admin@huapont.cn / admin123`(通过生产初始化命令显式创建) - 自助注册:前端 `/register` 提交邮箱、密码、姓名、角色(CRA/PV/IMP/PM)、部门,状态为 PENDING。 - 管理员审核:`/admin/user-approval` 列表查看待审核,支持通过/拒绝;仅 ACTIVE 用户可登录。 - 更多账号:管理员也可在 `/admin/users` 直接创建 ACTIVE 账号,再在项目成员中赋予角色。 ## 角色权限概要(前端操作级提示,后端仍最终裁决) - ADMIN:全权限 - PM:里程碑/任务维护、参与者状态、AE 创建/关闭、Issue 创建/关闭、Finance 创建/审批/支付、IMP 交易、FAQ 维护 - CRA:任务/参与者/AE/Data Query 创建,参与者状态更新,Finance 创建/提交,其他只读 - PV:AE 创建/关闭,Issue 创建/关闭,其余只读 - IMP:IMP 交易/产品/批次维护,其余只读 - 普通成员(无项目角色):仅浏览 ## 访问方式 - 前端:`http://localhost`(Nginx 直接托管前端静态文件) - 后端 API:同域 `/api/v1/*`(已在前端代理) ## 仓库治理文档 - 分支治理规范:`docs/branch-governance.md` - 发布检查清单:`docs/guides/release-checklist.md` ## 本地配置 - 本地编辑器配置(如 `.vscode/`)不纳入版本库。 - 前端环境变量请使用 `frontend/.env`,可从 `frontend/.env.example` 复制。 - 根目录 `.env` 不作为当前默认启动流程的提交配置文件。 - Postman 本地环境请基于 `docs/postman/local.postman_environment.example.json` 自行复制,不提交个人环境文件。 - 文档入口见 `docs/README.md`;当前操作手册集中在 `docs/guides/`,审计与治理文档集中在 `docs/audits/`。 ## 常用流程 1. 用管理员账号登录前端(默认 `admin@example.com / admin123`)。 2. 进入左侧导航「账号治理」「项目治理」进行用户、项目、中心等全局管理;或在“项目列表”选择项目后进入项目内工作区。 3. Dashboard 查看进度、待办;左侧导航进入“里程碑”“任务”等页面。 4. 退出登录或切换项目可通过顶部右侧下拉。 ## 管理员全局治理(前端入口) - 账号治理:`/admin/users`(新建/编辑/启用禁用用户,重置密码需二次确认) - 项目治理:`/admin/projects`(创建/编辑项目,成员配置 PM/CRA,中心管理) - 中心管理:`/admin/projects/:projectId/sites`(中心创建/编辑、CRA 绑定、启用停用) > ADMIN 具备所有 PM 权限,项目内操作与 PM 同步放行。 ## 注意 - 登录使用邮箱 + 密码,未审核/已拒绝/已停用账号无法登录。 - 令牌与当前项目上下文保存在浏览器 LocalStorage 中,清除后需重新登录/选择项目。 - 若后端重启,确认数据库容器仍健康,前端会弹出错误提示。