用途:在本地从源码启动或重启 Temps 控制平面,同时启动位于 <checkout>/web 的 Web 开发服务器(bun dev),便于快速本地迭代,无需调试器。触发场景包括“start temps”“restart temps”,以及后端改动后需要重载服务时。
主要能力:默认为单进程 monolith 模式(temps serve --role=all);也支持 split 模式,即独立的 Pingora 数据面代理加 Axum 控制面,用于验证控制面重启时代理持续服务。技能为每个 checkout 分配 0–29 的端口槽位,从槽位推导后端 HTTP、控制台、TLS、停靠地址、Web 开发端口及数据库名,避免多工作树端口冲突。
必要用法:需先按 CONTRIBUTING.md 启动并连通数据库容器(如 docker run 启动 timescaledb),在 <checkout>/web 执行 bun install,并在需要容器部署、沙箱等功能时确保 Docker 运行。步骤包括:分配槽位、准备该槽位数据库与数据目录、仅终止属于本 checkout 的进程、启动服务与 Web 开发服务器、等待后端监听并报告实际 URL。非零槽位需设置 TEMPS_API_TARGET,否则 SPA 会连到 :8080 上的其他服务;首次运行需 TEMPS_ADMIN_EMAIL 与 TEMPS_ADMIN_PASSWORD_FILE 以免交互式提示卡住。
限制:端口范围有限(HTTP 8080–8370、Web 3000–3029 等),可能与其他本地服务冲突。默认仅绑定 127.0.0.1,不涉及局域网暴露;启动时显式允许不受限沙箱网络仅用于本地开发,不可用于生产。终止进程前会校验 cwd,若属于其他会话则拒绝;不要使用 pkill -f temps 或 pkill -f cargo。释放槽位会销毁该槽位数据。部分细节(如具体 Docker 镜像与完整清理脚本)资料未完整提供。