File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ name : 部署到 GitHub Pages
2+
3+ on :
4+ push :
5+ branches :
6+ - main
7+
8+ jobs :
9+ build :
10+ name : 构建 Docusaurus
11+ runs-on : ubuntu-latest
12+ steps :
13+ - uses : actions/checkout@v4
14+ with :
15+ fetch-depth : 0
16+
17+ - uses : actions/setup-node@v4
18+ with :
19+ node-version : 18
20+ cache : ' npm'
21+
22+ - name : 安装依赖
23+ run : npm install
24+
25+ - name : 构建网站
26+ run : npm run build
27+
28+ - name : 上传构建制品
29+ uses : actions/upload-pages-artifact@v3
30+ with :
31+ path : build
32+
33+ deploy :
34+ name : 部署到 GitHub Pages
35+ needs : build
36+ permissions :
37+ pages : write
38+ id-token : write
39+ environment :
40+ name : github-pages
41+ url : ${{ steps.deployment.outputs.page_url }}
42+ runs-on : ubuntu-latest
43+ steps :
44+ - name : 部署到 GitHub Pages
45+ id : deployment
46+ uses : actions/deploy-pages@v4
Original file line number Diff line number Diff line change 1+ # Dependencies
2+ /node_modules
3+ # Production
4+ /build
5+ # Generated files
6+ .docusaurus
7+ .cache-loader
8+ # Misc
9+ .DS_Store
10+ .env.local
11+ .env.development.local
12+ .env.test.local
13+ .env.production.local
14+ npm-debug.log *
15+ yarn-debug.log *
16+ yarn-error.log *
Original file line number Diff line number Diff line change 1+ # FCP 产品文档
2+
3+ FCP(FluxMQ Control Plane)产品文档站点,基于 Docusaurus 构建。
4+
5+ ## 本地开发
6+
7+ ``` bash
8+ npm install
9+ npm run start
10+ ```
11+
12+ 访问 http://localhost:3000
13+
14+ ## 构建
15+
16+ ``` bash
17+ npm run build
18+ npm run serve # 预览构建结果
19+ ```
20+
21+ ## GitHub Actions 与 Pages 部署
22+
23+ 推送代码到 ` main ` 分支后,GitHub Actions 会自动构建并部署到 GitHub Pages。
24+
25+ ** 首次使用需在仓库设置中开启 Pages:**
26+
27+ 1 . 打开 [ quickmsg/fcp-doc] ( https://github.com/quickmsg/fcp-doc ) → ** Settings** → ** Pages**
28+ 2 . ** Source** 选择 ** GitHub Actions**
29+ 3 . 保存后,每次推送到 ` main ` 会触发 ` .github/workflows/deploy.yml ` ,构建 Docusaurus 并部署
30+
31+ 部署完成后访问:` https://quickmsg.github.io/fcp-doc/ ` (若未配置自定义域名)。
32+
33+ ## 文档结构
34+
35+ - ** 产品介绍** :FCP 定位、功能、与 FluxMQ 关系
36+ - ** 安装部署** :Linux 安装包、Docker、配置说明
37+ - ** 配置说明** :config.toml 配置项
38+ - ** 功能指南** :应用、License、项目、组织、用户、代理、监控、告警、审计
39+ - ** API 概览** :REST API 与认证说明
40+ - ** FAQ** :常见问题
41+
42+ ## 作为 Git 子模块使用
43+
44+ 在 FluxMQ 主仓库中添加 FCP 文档子模块(需先在 GitHub 创建仓库 ` quickmsg/fcp-doc ` ):
45+
46+ ``` bash
47+ # 1. 在 fcp-doc 目录初始化并推送到远程(首次)
48+ cd fcp-doc
49+ git init
50+ git add .
51+ git commit -m " docs: initial FCP documentation"
52+ git branch -M main
53+ git remote add origin git@github.com:quickmsg/fcp-doc.git
54+ git push -u origin main
55+
56+ # 2. 在 fluxmq 根目录添加子模块(若 fcp-doc 目录已存在且含未提交内容,可先备份后删除再执行)
57+ cd /path/to/fluxmq
58+ git submodule add git@github.com:quickmsg/fcp-doc.git fcp-doc
59+ ```
60+
61+ 克隆主仓库时拉取子模块:
62+
63+ ``` bash
64+ git clone --recurse-submodules git@github.com:quickmsg/fluxmq.git
65+ # 或已克隆后
66+ git submodule update --init --recursive
67+ ```
Original file line number Diff line number Diff line change 1+ # 常见问题
2+
3+ ## 安装与部署
4+
5+ ** Q: 支持哪些数据库?**
6+ A: PostgreSQL 13+、MySQL 8.0+、SQLite 3.x。生产环境建议使用 PostgreSQL 或 MySQL。
7+
8+ ** Q: 首次登录账号从哪里来?**
9+ A: 若配置中 ` admin.auto_create = true ` ,首次启动时会根据 ` admin ` 节创建管理员账号。否则需通过迁移或脚本创建。
10+
11+ ** Q: 代理端口 8081 无法访问?**
12+ A: 检查 config.toml 中 ` [proxy] ` 的 host/port,以及防火墙、安全组是否放行该端口。
13+
14+ ## License 与 FluxMQ
15+
16+ ** Q: FluxMQ 如何切换到 FCP 模式?**
17+ A: 在 FluxMQ 的 config.yaml 中设置 ` license.mode: FCP ` ,并配置 ` proxy.serverUrl ` 、` proxy.token ` 、` proxy.applicationId ` ,指向 FCP 及在 FCP 中创建的应用。
18+
19+ ** Q: FCP 中应用与 FluxMQ 的对应关系?**
20+ A: 一个 FCP 应用可对应多台 FluxMQ 节点(同一业务集群)。每台节点配置相同的 applicationId 与对应 token。
21+
22+ ** Q: Token 泄露怎么办?**
23+ A: 在 FCP 应用管理中重新生成或更换 Proxy Token,并更新所有 FluxMQ 节点的 config.yaml 后重启。
24+
25+ ## 权限与多租户
26+
27+ ** Q: 如何限制某用户只能看某个项目?**
28+ A: 将用户角色设为项目管理员或普通用户,并只分配至对应项目,即可实现按项目隔离。
29+
30+ ** Q: 审计日志保留多久?**
31+ A: 以实际实现与配置为准,可在配置或数据库中设置保留策略。
32+
33+ ## 监控与告警
34+
35+ ** Q: 告警不触发?**
36+ A: 检查告警规则条件是否满足、规则是否启用,以及通知渠道是否配置正确且可用。
37+
38+ ** Q: 支持哪些通知渠道?**
39+ A: 常见为钉钉、飞书、企业微信等,以 FCP 当前实现为准,在「通知渠道」中配置。
Original file line number Diff line number Diff line change 1+ # API 概览
2+
3+ FCP 提供 REST API,供前端与第三方系统集成。
4+
5+ ## 认证
6+
7+ - 登录:` POST /api/v1/auth/login ` ,请求体含 ` username ` 、` password ` ,返回 JWT。
8+ - 获取当前用户:` GET /api/v1/auth/me ` ,Header 需带 ` Authorization: Bearer <token> ` 。
9+ - 其他接口均在 Header 中携带上述 Token。
10+
11+ ## 主要模块
12+
13+ | 模块 | 路径前缀 | 说明 |
14+ | ------| ----------| ------|
15+ | 认证 | /api/v1/auth | 登录、当前用户 |
16+ | 组织 | /api/v1/organizations | 组织 CRUD |
17+ | 项目 | /api/v1/projects | 项目 CRUD |
18+ | 应用 | /api/v1/applications | 应用 CRUD(以实际路由为准) |
19+ | License | /api/v1/licenses | License 管理(以实际路由为准) |
20+ | 告警 | /api/v1/alerts | 告警列表与状态更新 |
21+ | 告警规则 | /api/v1/alert-rules | 告警规则 CRUD |
22+ | 通知渠道 | /api/v1/notification-channels | 通知渠道配置(以实际路由为准) |
23+ | 审计 | /api/v1/audit-logs | 审计日志查询 |
24+
25+ ## 说明
26+
27+ - 实际路径与请求/响应格式以 fmq-admin 代码与 OpenAPI 文档为准。
28+ - 更多接口可参考 [ fmq-admin README] ( https://github.com/quickmsg/fmq-admin ) 中的 API 章节。
Original file line number Diff line number Diff line change 1+ # 配置说明
2+
3+ FCP 使用 ** config.toml** 作为主配置文件(部分部署方式支持环境变量覆盖)。
4+
5+ ## 配置示例
6+
7+ ``` toml
8+ [server ]
9+ address = " 0.0.0.0:8080"
10+
11+ [database ]
12+ type = " sqlite"
13+ url = " /opt/fcp-admin/data/data.db"
14+
15+ [jwt ]
16+ secret = " your-jwt-secret-key"
17+ expiration = 86400
18+
19+ [admin ]
20+ username = " admin"
21+ password = " admin"
22+ email = " admin@example.com"
23+ auto_create = true
24+
25+ [logging ]
26+ level = " info"
27+ file_dir = " logs"
28+
29+ [proxy ]
30+ host = " 0.0.0.0"
31+ port = 8081
32+ ```
33+
34+ ## 配置项说明
35+
36+ | 节 | 配置项 | 说明 |
37+ | ----| --------| ------|
38+ | server | address | 服务监听地址,如 ` 0.0.0.0:8080 ` |
39+ | database | type | 数据库类型:postgres / mysql / sqlite |
40+ | database | url | 数据库连接 URL |
41+ | jwt | secret | JWT 签名密钥,生产环境务必修改 |
42+ | jwt | expiration | Token 有效期(秒) |
43+ | admin | username / password / email | 初始管理员账号(auto_create 时创建) |
44+ | admin | auto_create | 是否自动创建管理员 |
45+ | logging | level | 日志级别:debug / info / warn / error |
46+ | logging | file_dir | 日志目录 |
47+ | proxy | host / port | 代理服务监听地址与端口,供 FluxMQ FCP 模式连接 |
48+
49+ ## 数据库 URL 示例
50+
51+ ``` bash
52+ # PostgreSQL
53+ url = " postgres://user:password@localhost:5432/fcp_admin"
54+
55+ # MySQL
56+ url = " mysql://user:password@localhost:3306/fcp_admin"
57+
58+ # SQLite
59+ url = " sqlite:./data/fcp_admin.db"
60+ ```
61+
62+ 修改配置后需重启 FCP 服务。
Original file line number Diff line number Diff line change 1+ # 告警管理
2+
3+ FCP 支持告警规则与告警记录,并可对接多种通知渠道。
4+
5+ ## 告警规则
6+
7+ - ** 创建规则** :在 ** 告警规则** 中配置触发条件(如连接数超限、节点离线等)。
8+ - ** 严重程度** :可设置多级严重程度,便于分级处理。
9+ - ** 关联对象** :规则可关联到应用、集群或全局。
10+
11+ ## 告警记录
12+
13+ - ** 告警列表** :查看历史告警及状态(未处理/已处理/已忽略)。
14+ - ** 状态更新** :对单条告警进行确认、处理或忽略。
15+
16+ ## 通知渠道
17+
18+ - 在 ** 通知渠道** 中配置钉钉、飞书、企业微信等,用于接收告警通知。
19+ - 告警触发后,FCP 按规则将消息推送到已配置的渠道。
20+
21+ ## API 示例
22+
23+ - 获取告警列表:` GET /api/v1/alerts `
24+ - 更新告警状态:` PUT /api/v1/alerts/:id `
25+ - 告警规则 CRUD:` /api/v1/alert-rules `
26+
27+ 具体路径与请求体以实际 API 文档为准。
Original file line number Diff line number Diff line change 1+ # 应用管理
2+
3+ 应用(Application)是 FCP 中管理 FluxMQ 集群的基本单元,对应一个或多个 FluxMQ 节点。
4+
5+ ## 概念
6+
7+ - ** 应用** :代表一套 FluxMQ 业务集群,用于 License 分配、代理与监控。
8+ - ** 应用类型** :如 FluxMQ;后续可扩展其他类型。
9+ - ** License 激活方式** :本地文件(LOCAL)或通过 FCP 激活(FCP 模式)。
10+
11+ ## 创建应用
12+
13+ 1 . 登录 FCP 控制台。
14+ 2 . 进入 ** 应用管理** (或「应用」菜单)。
15+ 3 . 点击 ** 新建应用** ,填写:
16+ - 应用名称
17+ - 所属项目
18+ - 应用类型(如 FluxMQ)
19+ - License 激活方式(FCP 时需在本应用下分配 License)
20+ - 可选:监控采集间隔、数据保留天数等。
21+
22+ ## 代理与连接
23+
24+ - ** 代理模式** :当 FluxMQ 使用 FCP 模式时,需在 FCP 中为该应用配置 ** Proxy Token** 、** 代理端口** 等。
25+ - FluxMQ 端在 ` config.yaml ` 中配置 ` proxy.serverUrl ` 、` proxy.token ` 、` proxy.applicationId ` ,指向本 FCP 及对应应用。
26+
27+ ## 监控
28+
29+ - 可为应用配置监控采集间隔;FCP 从 FluxMQ 节点拉取指标并展示。
30+ - 在 ** 监控** 或 ** 应用详情** 中查看连接数、消息量等。
Original file line number Diff line number Diff line change 1+ # 操作审计
2+
3+ FCP 记录用户关键操作,便于安全审计与问题追溯。
4+
5+ ## 审计内容
6+
7+ - 登录/登出
8+ - 组织、项目、应用、用户、License 等资源的创建、修改、删除
9+ - 告警规则与通知渠道的变更
10+ - 其他敏感操作(以实际实现为准)
11+
12+ ## 查看审计日志
13+
14+ - ** 系统管理员** :可查看全部审计日志。
15+ - ** 组织/项目管理员** :通常仅可查看本组织/项目相关操作(以权限设计为准)。
16+
17+ 在 ** 审计日志** 页面可按时间、用户、操作类型等筛选查询。
18+
19+ ## API
20+
21+ - 获取审计日志:` GET /api/v1/audit-logs `
22+ - 支持分页与筛选参数,具体见 API 文档。
Original file line number Diff line number Diff line change 1+ # License 管理
2+
3+ FCP 负责 FluxMQ 在 ** FCP 模式** 下的 License 签发、分配与激活。
4+
5+ ## 两种 License 模式(FluxMQ 侧)
6+
7+ | 模式 | 说明 |
8+ | ------| ------|
9+ | ** LOCAL** | FluxMQ 使用本地 license 文件,不依赖 FCP。 |
10+ | ** FCP** | FluxMQ 通过 FCP 进行 License 校验与拉取,需在 FCP 中创建应用并分配 License。 |
11+
12+ ## 在 FCP 中管理 License
13+
14+ 1 . ** 签发/导入 License**
15+ 系统管理员在 FCP 中上传或签发 License(具体以产品实现为准)。
16+
17+ 2 . ** 分配到应用**
18+ 将 License 分配到指定应用(Application),并设置连接数等限制。
19+
20+ 3 . ** FluxMQ 激活**
21+ - FluxMQ 配置 ` license.mode: FCP ` 和 ` proxy.* ` (serverUrl、token、applicationId)。
22+ - 启动后向 FCP 发起激活请求,FCP 校验通过后下发 License 信息。
23+
24+ ## 连接数限制
25+
26+ - 每个 License 可设置最大连接数等限制。
27+ - FCP 按应用维度统计连接并校验是否超限,超限时可按策略拒绝或告警。
You can’t perform that action at this time.
0 commit comments