Zephyr Cloud
Deploy Nitro apps to Zephyr Cloud.
Preset: zephyr
Zephyr support is built into Nitro through the zephyr preset.
For most Zephyr-specific topics such as BYOC, cloud integrations, environments, and CI/CD authentication, refer to the Zephyr Cloud docs.
Note
Zephyr is a little different from most Nitro deployment providers. Instead of targeting a single hosting vendor directly, Zephyr acts as a deployment control plane on top of either Zephyr-managed infrastructure or your own cloud integrations.
#BYOC model
Zephyr supports a BYOC (Bring Your Own Cloud) model. In Zephyr's architecture, the control plane stays managed by Zephyr, while the data plane (workers and storage) runs in your cloud accounts.
This lets you keep Zephyr's deployment workflow while using any supported Zephyr cloud integration. See the Zephyr BYOC docs for the current list of supported providers.
#Deploy with Nitro CLI
Use Nitro's deploy command to build and upload your app to Zephyr in one step:
npx nitro deploy --preset zephyrNitro will upload the generated output using zephyr-agent. If zephyr-agent is missing, Nitro will prompt to install it locally and will install it automatically in CI.
#Deploy during build
Zephyr is a little different here from most Nitro providers: we recommend enabling deployment during nitro build and treating build as the primary deployment step.
If your CI pipeline already runs nitro build, enable deployment during the build step:
import { defineConfig } from "nitro";
export default defineConfig({
preset: "zephyr",
zephyr: {
deployOnBuild: true,
},
});Then your normal build command is enough:
npm run buildAfter the build finishes, Nitro uploads the generated output to Zephyr, deploys it to the edge, and prints the deployment URL:
◐ 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 authentication
Zephyr requires an API token for non-interactive deployments. The example below uses the simpler personal-token style setup with ZE_SECRET_TOKEN together with zephyr.deployOnBuild.
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 buildFor more advanced CI/CD setups, Zephyr also documents organization-level server-token authentication using ZE_SERVER_TOKEN. See the Zephyr CI/CD server token docs.
#Options
#zephyr.deployOnBuild
Deploy to Zephyr during nitro build when using the zephyr preset.
- Default:
false