用途:在部署目录中使用随包提供的 red 启动器,创建和运维单服务器 Basecamp ONCE 部署,覆盖 colors.yml 配置、构建、dry-run、置备、删除与状态查看。启动器基于 Bun 运行,并解析不可变的包依赖。修改期望状态前应先阅读 configuration.md;为应用仓库添加持续部署时阅读 github-deploy.md。
主要能力:该包通过 colors-compute 面向单一主机,由库负责提供商选择、凭据、远程状态与 SSH 密钥生命周期;要获得提供商支持应更新其依赖,而不要在本包中添加计算模板或提供商分支。ONCE 负责应用配置、SMTP、DNS 与 GitHub 发布。
使用方式:密钥保存在 COLORS_PAR_* 环境变量中,只询问变量名及是否已设置,不询问值;不要读取 .envrc.private 或私钥,也不要把生成的 .colors/ 当作源读取或编辑。一次部署只使用一个 color。初始化时保留已有期望状态与无关文件,复制随包启动器并赋予可执行权限,用非密钥设置创建或修订 colors.yml,忽略生成输出与私有环境文件。用 ./red build 和 ./red create --dry-run 验证,这两条命令不联系提供商,也不证明凭据或线上健康。
限制:真实 create 或 delete 需要用户授权,任务已有授权则不必再问。create 会先验证、收敛计算,再处理 SMTP、DNS、验证与应用配置;计算所有权失败会停止后续资源创建。delete 会加载记录的计算清单,撤回已发布凭据与 SSH 配置,移除 DNS 与 SMTP,然后销毁计算;库在成功销毁后移除其 SSH 密钥。期望状态中应保留 compute-prevent-destroy: true,授权删除可在该次调用使用 COLORS_PAR_COMPUTE_PREVENT_DESTROY=false。已有单体计算状态需要显式审查过的迁移,不要用新的 create 试探;状态缺失、不可读或不一致应拒绝而非重建。失败操作会保留用于检查与重试的状态。用 ./red describe 查看记录的计算状态与应用检查,它通过库读取计算,SSH 前需要已验证地址。若应用指定 GitHub 仓库,先确认持续部署是否属于用户请求,再添加其工作流,并确认目标仓库匹配 owner/repo。create 与 build 会在远程 Ansible 前串行化包自有的 SSH 别名阶段;本地所有权检查失败会停止应用收敛,GitHub 发布仍在远程收敛之后。