Skip to content

第一次部署

从零开始完成第一次 Appaloft 部署的完整路径。

Updated View as Markdown

目标

从一个空的 Appaloft 实例开始,完成一次最小部署:创建项目、注册服务器、创建资源、发起部署,并拿到一个可以打开的访问地址。

适用场景

  • 你刚安装或第一次登录 Appaloft,想验证整条链路是否打通。
  • 你要把一个已经能在本地跑起来的应用(Git 仓库、容器镜像或静态构建产物)部署到自己的服务器上。

如果你只是想了解 Appaloft 的核心概念,先看产品心智模型;如果你不确定该用 Web、CLI 还是 API,先看选择入口

前置条件

  • 一台你拥有 root 或 sudo 权限的 Linux 服务器,并且可以通过 SSH 访问(Appaloft 是 BYOS 模型,不会替你托管服务器)。
  • 一个 Git 仓库地址、容器镜像地址,或者一份已经构建好的静态目录。
  • 已经完成安装 Appaloft创建首个管理员(自托管场景),或者已经拥有 Appaloft Cloud 账号。

输入与默认值

一次最小部署需要以下输入:

输入说明默认值
Project资源、环境和部署历史的组织边界无,必须显式创建或选择
Server部署目标机器(SSH 可达)无,必须先注册
部署来源Git 仓库、容器镜像或本地静态目录无,必须显式提供
运行时 Profile启动命令、端口、健康检查路径尝试零配置检测,检测失败需要显式指定

零配置自动检测的覆盖范围因来源类型而异,本页面按诚实的成熟度标注:

来源类型检测状态
本地单应用根目录(CLI 直接指向一个项目目录)已验证覆盖最完整
公网 Git 仓库自动 framework 检测不支持,需要显式声明 runtime
容器原生(Dockerfile / 已构建镜像)已支持
远程 Git + 显式 command profilePreview,建议先在本地验证
Monorepo 中限定范围的本地目录发现Preview
通用 workload 归档包不支持

Monorepo 根目录下存在多个候选应用时,部署会被阻塞,直到你显式传入 baseDirectory

Web 操作步骤

  1. 登录 Web 控制台,创建或选择一个 Project。
  2. 进入 Servers,点击 Register server,填写主机地址和 SSH 凭据,等待连通性检查通过。
  3. 进入 Resources,点击 Create resource,选择部署来源(Git 仓库 / 容器镜像 / 上传静态目录)和刚注册的服务器。
  4. 确认运行时 Profile(启动命令、端口、健康检查)后点击 Deploy
  5. 部署面板会展示当前生命周期状态;成功后会显示自动生成的访问地址。

CLI 操作步骤

# 1. 登录(默认连接 Appaloft Cloud,自托管请显式传 --url)
appaloft login --url https://your-appaloft-host

# 2. 创建项目(如果还没有)
appaloft projects create --name "my-first-project"

# 3. 注册服务器并等待连通性检查
appaloft server register --host 203.0.113.10 --ssh-user deploy --ssh-key ~/.ssh/id_ed25519
appaloft server capacity inspect --server-id <serverId>

# 4. 从当前目录发起部署(零配置检测)
appaloft deploy

# 5. 或者显式指定配置文件 / profile
appaloft deploy --config appaloft.yml --config-profile staging

# 6. 已经构建好的静态目录,跳过构建步骤直接发布
appaloft deploy ./dist --as static-site

# 7. 查看部署状态与时间线
appaloft deployments timeline <deploymentId> --follow --json

HTTP/API 操作步骤

自动化系统应通过同一套业务操作调用,而不是重新定义一套输入语义:

curl -X POST https://your-appaloft-host/api/deployments \
  -H "Authorization: Bearer $APPALOFT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "resourceId": "res_xxx",
    "source": { "type": "git", "url": "https://github.com/you/app" }
  }'

完整路由和输入输出结构见 HTTP API 参考;也可以直接查看运行时的 /api/openapi.json/api/reference(Scalar)。

预期输出与状态

一次成功的部署会依次经过 pending → planning → building → deploying → verifying → healthy 等生命周期状态(具体取值以状态与事件为准),最终返回:

  • 部署所属的资源和目标服务器;
  • 使用的源代码提交 / 镜像摘要、运行时和网络配置;
  • 一个可访问的生成访问地址;
  • 一份可用于排查的诊断摘要引用。

验证

  • 打开返回的访问地址,确认应用正常响应。
  • 运行 appaloft resource health <resourceId> --checks --public-access-probe,确认健康检查和公网访问探测都通过。
  • 运行 appaloft resource show <resourceId> --json,确认资源状态为健康且指向预期的部署。

回滚 / 恢复

如果部署失败或健康检查不通过:

# 查看失败原因和可恢复线索
appaloft deployments recovery-readiness <deploymentId>

# 重试同一次部署
appaloft deployments retry <deploymentId>

# 回滚到某个已知良好的历史部署
appaloft deployments rollback <deploymentId> --candidate <candidateDeploymentId>

更完整的恢复流程见回滚与恢复

故障排查链接

相关参考页面

如果是 AI Agent 在执行这个流程,请优先安装完整 Appaloft Skill,再按 Agent 部署子协议调用上面这些既有入口,而不是绕过它们直接操作数据库或服务器。

Navigation

Type to search…

↑↓ navigate↵ selectEsc close