Skip to content

目录与命名

Cratenaut 使用稳定、可预测的目录和 Docker 名称隔离项目、服务器与 Crate 实例

配置旁的本地信息

默认配置:

text
project/
├── naut.config.ts
└── .cratenaut/
    └── managed/

.cratenaut 保存 Cratenaut 产生的信息,应加入 .gitignore

全局配置保持相同的隔离层级:

text
~/.cratenaut/
├── naut.config.ts
└── .cratenaut/

服务器管理根目录

连接方式默认根目录
本地<配置目录>/.cratenaut/managed
SSH/var/lib/cratenaut

单台服务器的完整布局:

text
<root>/
└── projects/<project>/servers/<server>/
    ├── state/
    │   ├── current.json
    │   ├── fingerprint.key
    │   └── history/
    ├── journals/
    ├── locks/
    │   └── deploy
    ├── runtime/
    │   └── deployment/
    ├── backups/
    └── crates/
        └── <crate-instance>/
            ├── data/
            ├── config/
            ├── cache/
            └── runtime/

各目录职责:

目录内容
state当前状态、资源指纹和历史状态
journals部署过程记录
locks防止并发部署的锁
runtime临时部署运行信息
backups预留的标准备份输出位置
crates/<id>/data需要长期保留和备份的数据
crates/<id>/configCrate 生成的配置与敏感文件
crates/<id>/cache可以重新生成的缓存
crates/<id>/runtime套接字、进程状态等运行文件

不要把业务数据写入 configcacheruntime。备份工具只可能根据明确的数据语义可靠工作

Docker 名称

服务器项目网络:

text
cratenaut-<project>-<server>

容器:

text
cratenaut-<project>-<server>-<crate-instance>-<resource>

网络别名:

text
<crate-instance>-<resource>

例如:

text
项目:commerce
服务器:production
实例:database
容器资源:server

网络:cratenaut-commerce-production
容器:cratenaut-commerce-production-database-server
别名:database-server

Docker 镜像名称由具体 Crate 选项决定,Cratenaut 不重命名或重新构建第三方镜像

修改标识的影响

修改项目、服务器、实例或资源标识通常会被视为删除旧资源并创建新资源,而不是重命名。对包含持久化数据的实例尤其危险

描述性文字应放入 description,不要通过修改稳定标识来表达用途变化

以 MIT 许可证发布