架构与边界
JumpCLI 将产品工作台、身份认证、商业计费和支付服务通过稳定接口组合,而不是修改 Casdoor 或 Meteroid 的源码。
正式部署保持单个应用容器和单个 worker(GRANIAN_WORKERS=1);更新前先备份 data/、images/ 和 maintenance/,再用已审核镜像滚动替换并用 /ready 和浏览器回归验证,失败时回滚到上一版已验证镜像。
约 10 位用户的 MVP 并发模型
单个 worker 负责 HTTP、SSE 和 SQLite 协调,不直接等同于出图并发。默认由 4 个平台执行槽调用上游,单组织最多 2 个、单账户最多 1 个;其余任务进入持久队列,平台/组织/账户容量分别为 60/10/5。单模型并发为 3,单上游为 4。共享 NAT 下单 IP SSE 上限为 40,生成与编辑提交上限为每 15 分钟 120 次。
该配置适合约 10 位用户短时同时提交,但吞吐仍取决于模型平均响应时间和上游限额。例如平均每张 45 秒且 4 槽持续占满时,理论上限约为每分钟 5 张,实际值还会受图片大小、下载和重试影响。扩到多应用进程前,必须先迁移到共享队列/协调器和非 SQLite 共享数据层。
容器重启后,排队任务会继续执行。若一个运行中任务的一次性执行凭据已被旧进程消费,系统会将该任务标记为 interrupted、幂等释放未产出额度,并禁止自动重放上游请求,避免重复出图和重复计费。
组件职责
| 组件 | 职责 | 浏览器是否直接访问 |
|---|---|---|
| JumpCLI 应用 | 工作台、生成任务、账户界面、运营适配层 | 是 |
| Casdoor | OIDC 身份认证与会话授权 | 仅登录跳转 |
| Meteroid | 套餐、订阅、账单和权益计量 | 否 |
| 支付宝 | 外部支付与签名通知 | 仅受控支付跳转 |
| 上游模型服务 | 图像生成和编辑 | 否 |
浏览器只调用 JumpCLI 对外 API。Casdoor 管理令牌、Meteroid 凭据、支付私钥、SMTP 密码和 上游 API 密钥都保留在服务端。
数据与权限
每个客户组织拥有独立的产品数据边界。身份、商业计费和产品任务分别由对应组件负责; JumpCLI 保存必要的适配标识、任务事实、审计记录和短时读取投影,而不把外部平台的 私有数据模型直接暴露给前端。
上线顺序
- 启动 JumpCLI 基础服务并完成健康检查。
- 启动并固定 Casdoor、Meteroid 版本。
- 配置 OIDC、计费连接和服务端秘密引用。
- 创建并发布可购买套餐。
- 使用测试账户验证登录、购买和一次生成。
下一步:域名规划。