Files
ctms/README.md
T
2026-03-30 20:15:06 +08:00

69 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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-<short_sha>``release` 分支发布 `rc-release``rc-<short_sha>``release/*` 分支发布 `rc-<release-branch>``rc-<short_sha>``main` 分支发布 `latest``sha-<short_sha>`
- 部署机需要先 `docker login <IP>: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 创建/提交,其他只读
- PVAE 创建/关闭,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 中,清除后需重新登录/选择项目。
- 若后端重启,确认数据库容器仍健康,前端会弹出错误提示。