Skip to content

了解 Cratenaut

Cratenaut 适合希望继续使用普通服务器和 Docker,同时又不想依赖零散脚本、手工命令或难以审查的操作记录的团队

它解决的问题

常见的服务器部署会逐渐出现这些问题:

  • 同一个服务在不同服务器上由不同命令启动
  • 配置修改后,不清楚会重启、重建还是删除哪些资源
  • 数据目录由每个脚本随意决定,备份和迁移变得困难
  • 密码进入配置文件、Shell 历史或进程参数
  • 服务器上的实际容器已经被手工修改,本地配置却不知道
  • 自动化工具或 AI 为了让命令成功,跳过了本应由人确认的风险

Cratenaut 把部署意图写成 TypeScript 配置,并在执行前生成计划。计划不只比较新旧配置,还会检查服务器实际状态,从而区分正常修改与状态漂移

它不是什么

Cratenaut 不是 Kubernetes 的替代实现,也不是托管式 PaaS。它不会引入控制平面、调度器或集群资源模型

它也不只是 Docker Compose 生成器。Compose 文件适合表达容器集合,Cratenaut 还需要表达:

  • 配置选项的类型、默认值和校验
  • 配置字段的变更风险
  • 可复用部署单元的语义化版本
  • 上次成功部署的状态
  • 服务器实际状态与配置之间的漂移
  • 部署前授权和部署后历史

什么时候适合使用

以下场景通常适合 Cratenaut:

  • 个人服务器、自托管服务和小型团队基础设施
  • 通过 SSH 管理的单台或多台 Linux 服务器
  • 需要在代码评审中审查部署配置
  • 希望为公司内部应用提供可复用部署规范
  • Docker 已经足够,但 Shell 脚本和手工操作不再可靠

如果需求包含跨节点自动调度、自动扩缩容、服务网格或大规模集群容错,应优先评估 Kubernetes 等集群编排平台

一条明确的边界

Cratenaut 只管理配置中声明并由它创建的资源。它不会把服务器上所有 Docker 容器都视为自己的资源,也不会在没有 --prune 和相应授权时删除配置中已经移除的托管资源

以 MIT 许可证发布