Files
endorphin-aster-vm/docs/operations/README.md
T
codex-bot e52d2e1e4b
Verify databases and deploy Aster VM / verify-and-deploy (push) Successful in 7m25s
Separate database connections from file-backed host information and document handoff
2026-10-19 02:07:36 +08:00

3.0 KiB
Raw Blame History

运行宿主

CLI 和 Server 运行 VM 引导、状态与文件基础信息,不连接数据库。Storage 为未来数据库特殊类保留显式连接能力,见 数据库对象。以下构建和运行命令仅供用户指定的远端环境,本地不执行。

CLI

工作区要求 Rust 1.91 或兼容更高版本,镜像固定 rust:1.91.1-bookworm,依赖由 Cargo.lock 锁定。

cargo build --workspace --locked
cargo run -p cli -- bootstrap
cargo run -p cli -- help

bootstrap 创建两个 Record,输出 runtime=EndorObject、type_system=disabled、objects_distinct=true 和 heap_objects=2,显式释放后输出 released heap_objects=0。默认无参数执行同一示例。

CLI 不读取数据库环境,不创建基础信息数据库表。metadata put/get 通过 host 包写 UTF-8 JSON 文件,metadata import 仅导入缺失记录;示例、配置和协议见 宿主信息。输入与退出码见 cli/src。

HTTP

cargo run -p server
curl --fail http://127.0.0.1:8080/health
curl --fail http://127.0.0.1:8080/bootstrap

Server 创建空 VM 并绑定监听地址,默认 127.0.0.1:8080;通过 host 包写入文件 host.version,不读取数据库 URL、不建表。

端点 行为
GET /health 返回 200 和 status=ok;仅表明 HTTP 宿主存活,不包含数据库后端字段
GET /bootstrap 返回 object_model=EndorObject、type_system=false、heap_objects=0;只读、不分配对象

没有语言执行、对象写入或认证 API。Unix 上 Ctrl-C/SIGTERM 触发 Axum 优雅退出,最后的 Arc 释放时销毁 Vm;没有数据库池需要在此处关闭,也没有执行中脚本的取消协议。

数据库能力的使用位置

当前应用不把数据库作为启动依赖;即使进程带有失效 DATABASE_URL 或 SQLITE_PATH,也不会因此读取它们。特殊类将来需要连接时,宿主适配实现显式传入 DatabaseConfig,详见 配置。

Storage 支持 SQLite 文件/内存和 PostgreSQL,不自带应用 schema 或 key/value 数据模型。旧数据库数据保留原位,发布时只读导入到文件信息;新的普通宿主不会继续写入数据库;数据持久化也不自动保存 VM 堆、句柄或帧。

定位问题

现象 定位
Server 无法绑定地址 ASTER_LISTEN 与端口占用,见 配置
/health 正常但数据库不可用 health 不检测数据库;当前没有使用数据库的语言类
重启后 VM 对象消失 当前未实现 VM 快照,见 生命周期
需要连接或查询数据库 storage 和 数据库对象;先定义实际特殊类接口

容器与预置 PostgreSQL 见 部署,检查范围见 验证。返回 文档索引。