使用 Hoist CLI 在 VPS 提供商上部署和管理应用、服务器、数据库、域名及环境变量。
Hoist CLI.Hoist是专门为AI代理而建立的AI-native CLI. 当从代理(非TTY)中调用时, 它自动输出结构化的JSON, 并跳过交互式提是一项面向实际任务的技能。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
Hoist 是一款原生支持 AI 的命令行工具(CLI),专为 AI 代理(agent)设计。当从 agent(非 TTY 环境)中调用时,它会自动输出结构化 JSON 格式结果,并跳过所有交互式提示。你只需直接运行命令即可。
你是用户的基础设施向导,请务必全面、透明:
hoist.json 中未明确定义目标服务器、服务或端口,则必须主动询问具体是哪个服务器、哪个服务、哪个端口。hoist status 并向用户报告结果。当 Hoist 从 agent 环境中被调用时,会自动检测并填充合理默认值:
--service,则默认部署全部应用服务;--server,则自动从 hoist.json 中对应服务的配置中解析;--name,则自动生成随机服务器名称;尽管存在默认值,仍须始终向用户呈现完整执行计划,并在执行前获取确认。
hoist deployhoist server createhoist deploy --template postgres --server hoist domain add example.comhoist statushoist logs ,再运行 hoist logs traefik,最后运行 hoist doctorhoist doctorhoist init 和 hoist provider add 均需依赖 HOIST_*_API_KEY 环境变量,或必须在交互式人工终端中运行。Hoist 是否已安装?(`which hoist`)
+-- 否 → 运行:`npm install -g hoist-cli`
+-- 是 → Hoist 是否已配置?(`hoist provider list`)
+-- 否 → 是否已设置 HOIST_*_API_KEY 环境变量?
+-- 是 → 运行:`hoist init`
+-- 否 → 提示用户运行:`hoist init`
+-- 是 → hoist.json 是否存在?
+-- 否 → 在询问项目名称与服务后,创建 hoist.json
+-- 是 → 用户想做什么?
+-- 创建新服务器 → `hoist server create`
+-- 导入已有服务器 → `hoist server import --ip `
+-- 部署应用 → `hoist deploy`
+-- 添加数据库 → `hoist deploy --template postgres --server `
+-- 添加域名 → `hoist domain add `
+-- 设置环境变量 → `hoist env set KEY=VAL`
+-- 查看状态 → `hoist status`
+-- 出现异常 → `hoist logs ` + `hoist doctor`
| 命令 | 行为 |
|---|---|
hoist init |
若已设置 HOIST_*_API_KEY 环境变量,则自动完成配置;否则进入交互式流程,需提示用户手动运行该命令。 |
hoist provider add |
要求指定 --type 参数,并从对应 HOIST_*_API_KEY 环境变量中读取 API 密钥。若环境变量缺失,应提示用户先设置。 |
hoist keys rotate |
轮换所有服务器上的 SSH 密钥。执行前必须获得用户确认。 |
hoist server destroy |
永久销毁指定服务器。执行前必须获得用户确认。 |
hoist template destroy |
销毁数据库及其全部数据。执行前必须获得用户确认。 |
hoist domain delete |
移除域名及其 SSL 配置。执行前必须获得用户确认。 |
支持的环境变量:HOIST_HETZNER_API_KEY、HOIST_VULTR_API_KEY、HOIST_DIGITALOCEAN_API_KEY、HOIST_HOSTINGER_API_KEY、HOIST_LINODE_API_KEY、HOIST_SCALEWAY_API_KEY
完整命令参考请查阅 COMMANDS.md。
provider add、provider list、provider test、provider update、provider set-default、provider deleteserver create、server import、server list、server status 、server ssh 、server destroy 、server regions、server types、server stats deploy、deploy --service 、deploy --template --server 、deploy --repo --branch 、rollback --service template list、template info 、template services、template inspect 、template backup 、template destroy 、template stop/start/restart 、template public 、template private domain add 、domain add --service 、domain list、domain delete env set KEY=VAL 、env get 、env list 、env delete 、env import 、env export 、echo KEY=VAL | env set --stdin logs 、logs traefik、logs --follow 、status、doctorskills sync、skills export [dir]keys show、keys rotate、config validate、--status请读取项目根目录下的 hoist.json 文件以获取当前项目上下文。
{
"project": "my-app",
"servers": { "prod": { "provider": "hetzner-1" } },
"services": {
"api": { "server": "prod", "type": "app", "source": ".", "port": 3000 }
}
}
请逐步引导用户完成部署,并在每步执行前请求确认:
example.com 和 www.example.com 均解析至该服务器 IP 地址。DATABASE_URL、各类 API 密钥及其他运行时配置项。若刚创建数据库,应主动推荐连接字符串。hoist status — 验证服务是否正常运行,并检查是否存在配置漂移(drift)hoist logs — 验证应用是否成功启动hoist domain add — 若用户有需求,则添加自定义域名并启用 SSLhoist template inspect — 获取数据库凭证与连接字符串hoist env set DATABASE_URL= — 将连接字符串注入应用环境变量hoist template public --server — 仅当用户明确要求开放公网访问时执行当出现问题时,请按顺序使用以下工具进行诊断:
hoist logs--lines 200
重点关注:崩溃循环、启动错误、缺失环境变量、数据库连接失败、端口配置错误等。
hoist logs traefik --lines 200
重点关注:502 错误、ACME 证书申请失败、TLS 配置异常等。
hoist doctor
检查 SSH 连通性、Docker 运行状态、Traefik 服务、防火墙策略及云服务商认证状态。
hoist status
显示当前实际运行的服务与配置定义之间的差异,同时汇报漂移情况与资源状态。
| 现象 | 排查方法 | 修复方式 |
|---|---|---|
| 502 Bad Gateway | 依次运行 hoist logs 和 hoist logs traefik |
修复应用崩溃或端口不匹配问题,然后重新部署。 |
| 网站无法加载 | hoist status |
使用 hoist deploy --service 重新部署对应服务。 |
| SSL 证书无效 | hoist logs traefik |
确认 DNS 已正确解析至服务器 IP,并等待下一次 ACME 自动重试。 |
| DNS 未生效 | hoist domain list |
用户需自行添加或修正 DNS A 记录。 |
| 返回内容异常 | hoist logs |
修复应用逻辑并重新部署。 |
| 数据库无法连接 | hoist template inspect |
启动模板服务,或修正连接字符串。 |
仅当本次部署引入了回归缺陷(regression),且上一版本运行正常时,才应执行回滚。
hoist rollback --service
执行前必须获得用户确认,并在回滚完成后使用 hoist status 验证状态。
| 错误信息 | 解决方案 |
|---|---|
Run hoist init first |
若已设置环境变量,则直接运行 hoist init;否则提示用户以交互方式运行该命令。 |
Provider not found |
运行 hoist provider list 查看已注册的提供商标签(label)是否正确。 |
Server not found |
运行 hoist server list 查看服务器列表。 |
SSH connection failed |
运行 hoist doctor 并核对服务器 IP 地址是否正确。 |
No hoist.json found |
在项目根目录下创建 hoist.json 文件。 |
references unknown server |
确保服务配置中 server 字段的值与 servers 区域中定义的服务器名称完全一致。 |
Re-run with --confirm |
此为破坏性操作。错误信息中已包含可直接重试的确切命令。 |
Multiple app services found |
请显式指定 --service 参数。 |
hoist logs 、hoist logs traefik、hoist doctor 和 hoist status 定位根本原因。相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章