# Zephyr Cloud > 将 Nitro 应用部署到 Zephyr Cloud。 **预设:** `zephyr` Zephyr 支持通过 `zephyr` 预设内置于 Nitro 中。 对于大多数 Zephyr 特定的主题,例如 BYOC、云集成、环境和 CI/CD 认证,请参阅 [Zephyr Cloud 文档](https://docs.zephyr-cloud.io)。 Zephyr 与大多数 Nitro 部署提供商有所不同。它不是直接面向单一托管供应商,而是作为部署控制平面,运行在 Zephyr 管理的基础设施或你自己的云集成之上。 ## BYOC 模式 Zephyr 支持 BYOC(自带云)模式。在 Zephyr 的架构中,控制平面由 Zephyr 管理,而数据平面(工作进程和存储)则运行在你的云账户中。 这使你可以在使用任何受支持的 Zephyr 云集成的服务的同时,保持 Zephyr 的部署工作流程。有关当前支持的提供商列表,请参阅 [Zephyr BYOC 文档](https://docs.zephyr-cloud.io/features/byoc)。 ## 使用 Nitro CLI 部署 使用 Nitro 的部署命令,一键完成构建并上传应用到 Zephyr: ```bash npx nitro deploy --preset zephyr ``` Nitro 将使用 `zephyr-agent` 上传生成的输出。如果缺少 `zephyr-agent`,Nitro 将提示在本地安装,并会在 CI 环境中自动安装。 ## 构建时部署 在这一方面,Zephyr 与大多数 Nitro 提供商有所不同:我们建议启用 `nitro build` 期间的部署,并将构建视为主要的部署步骤。 如果你的 CI 流水线已经运行 `nitro build`,请在构建步骤期间启用部署: ```ts [nitro.config.ts] import { defineNitroConfig } from "nitro/config"; export default defineNitroConfig({ preset: "zephyr", zephyr: { deployOnBuild: true, }, }); ``` 这样你正常的构建命令就足够了: 构建完成后,Nitro 会将生成的输出上传到 Zephyr,部署到边缘节点,并打印部署 URL: ```txt ◐ Building [Nitro] (preset: zephyr, compatibility: YYYY-MM-DD) ... ZEPHYR Uploaded local snapshot in 110ms ZEPHYR Deployed to Zephyr's edge in 700ms. ZEPHYR ZEPHYR https://my-app.zephyrcloud.app ``` ## CI 认证 Zephyr 需要 API 令牌才能进行非交互式部署。以下示例使用更简单的个人令牌样式设置,使用 `ZE_SECRET_TOKEN` 并结合 `zephyr.deployOnBuild`。 ```yaml [.github/workflows/deploy.yml] name: Deploy with Zephyr on: push: branches: [main] jobs: deploy: runs-on: ubuntu-latest env: ZE_SECRET_TOKEN: ${{ secrets.ZEPHYR_AUTH_TOKEN }} steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20 - run: npm ci - run: npm run build ``` 对于更高级的 CI/CD 设置,Zephyr 还记录了使用 `ZE_SERVER_TOKEN` 的组织级服务器令牌认证。请参阅 [Zephyr CI/CD 服务器令牌文档](https://docs.zephyr-cloud.io/features/ci-cd-server-token)。 ## 选项 ### `zephyr.deployOnBuild` 在使用 `zephyr` 预设时,在 `nitro build` 期间部署到 Zephyr。 - 默认值:`false`