生产运维
通过明确的归属、健康检查、恢复与发布门控,准备私有或组织级部署。
生产就绪不是一条命令,而是一组已验证的边界:哪些能力属于本地,哪些由组织管理,哪个服务拥有凭据,运行时如何成为健康状态,以及失败时运维者如何恢复状态。
iPolloWork 仓库支持不依赖 Cloud 控制平面的本地桌面和本地 Server 路径。私有组织部署应仅增加实际需要的控制平面与托管运行时能力。
图中区分了用户工作、本地运行时、可选组织服务,以及用于证明各层可安全使用的运维证据。
Local-first 使用路径
Electron 客户端与可编辑工作界面。
仓库、产物与由用户控制的工作材料。
工作执行
工作区 HTTP API、审批门控、审计、产物和运行时适配器。
通过受支持适配器检查的独立 Agent 运行时。
仅按需部署
组织访问、角色、共享配置与治理。
托管运行时生命周期与外部集成状态。
运维者可验证的内容
可达性、运行时兼容性与范围化就绪检查。
可恢复数据、负责人、恢复流程与导出证据。
选择部署形态
| 形态 | 包含内容 | 适用情况 | 不应假定 |
|---|---|---|---|
| 本地桌面 | Electron App、本地 Server、受支持 Sidecar、本地项目文件 | 个人或本地项目需要针对文件执行 Agent 工作 | 必须依赖组织身份或远程 Worker |
| 私有工作区 Server | ipollowork-server、工作区配置、受限网络路径 | 受控机器或 VPC 托管工作区运行时 | 自动提供完整组织控制平面 |
| 组织控制平面 | 身份、组织资源、连接器、共享能力、可选 Worker | 团队需要策略、共享配置和托管运行时生命周期 | 可以替代本地可编辑 Work 体验 |
有意识地配置本地 Server
本地 Server 可从编译后的二进制启动:
ipollowork-server --workspace /path/to/workspace --approval auto
也可在开发中从源码启动:
pnpm --filter ipollowork-server dev -- \
--workspace /path/to/workspace \
--approval auto
默认配置文件是 ~/.config/ipollowork/server.json。其中保存 Host、Port、审批模式与超时、已知工作区和 CORS Origins。环境变量可覆盖配置路径、Host 与 Port、Token、审批模式、工作区列表、CORS Origins、OpenCode 连接、Token Store 和相关运行时设置。
对于正常的人机协作安装,应保留默认的手动审批行为。--approval auto 适合本地开发或严格治理的自动化边界,不应作为未经审阅的生产默认值。
健康与就绪检查
只使用能够证明实际会被路由流量的健康检查:
| 检查 | 含义 | 运维响应 |
|---|---|---|
GET /health | 本地 Server 可达性和服务版本信息 | 进程不可用时,拒绝新增流量。 |
GET /status 与 /capabilities | Server 状态与支持的运行时能力 | 修复不兼容客户端或已禁用的能力边界。 |
GET /w/{workspaceId}/health | 范围化工作区 Server 健康状态 | 隔离单个故障工作区,而不是宣布所有工作区不可用。 |
| 受支持的 OpenCode Health 路径 | 经由 Server 适配器的 Sidecar 可达性 | 不健康时修复 Sidecar 边界,而不是先改客户端 UI。 |
不要因为通用 Health Endpoint 有响应,就直接将路径公开。Health Endpoint 只证明存活,不代表授权范围、数据恢复或租户隔离已经成立。
发布门控
按顺序执行各项门控。任一项失败,就停在该边界修复归属方,而不是扩大变更范围。
- 01配置
审查解析后的 Host、工作区、CORS、审批、凭据与 Ingress 配置,不泄露 Secret。
- 02构建与检查
在生成产物前运行仓库检查流、窄范围测试和 Diff 校验。
- 03分阶段健康检查
通过真实路由验证 Server、范围化工作区、Sidecar 与已启用控制平面 Endpoint。
- 04恢复证明
在大范围切流前,明确备份位置、恢复负责人、回滚条件和审计证据。
恢复与证据
在组织级发布前,请在运维 Runbook 中记录以下答案:
- 哪些状态在本地设备、工作区和组织控制平面中?
- 谁可以轮换每种 Server、Host、Owner、Session 和 Provider 凭据?
- 备份在哪里,最近一次恢复测试是什么时候,由谁负责做恢复决策?
- 哪个 Health 结果会阻止新任务执行,哪个结果仅降级可选 Cloud 功能?
- 调查事故而不泄露 Secret 时,需要哪些资源 ID、部署版本和审计记录?