跳到主要内容
Void

部署

void deploy 会构建应用、开通资源、执行迁移并完成部署。选择你自己的 Cloudflare 账户,或由团队运维的 Void 平台。

预计阅读 4 分钟

部署成功后,Void 会把部署地址与目标报告的详情一起打印在摘要框中。

部署到 Cloudflare

在 void init 期间选择 Cloudflare,或稍后再连接:

void connect --platform cloudflare
void deploy --platform cloudflare

Void 会打开浏览器让你登录,并询问使用哪个账户。之后的部署使用已保存的目标,你可以直接运行 void deploy。

如果你已经有一个 Worker 与根级的 wrangler.jsonc 或 wrangler.json,void deploy 可以关联它并保留其资源。

准备你的应用

迁移

部署会应用 db/migrations/ 中待处理的 SQL 迁移。如果你的 schema 有变化却没有对应的迁移,部署会停下来:

void db generate

检查并提交生成的 SQL,然后重新部署。注意回滚不会回退数据库迁移。

环境变量

在 env.ts 中声明值,用 void secret put 设置生产服务端密钥。部署绝不会上传你的本地 .env。通过构建环境提供公开的 VITE_* 值。参见环境变量。

请保持 CLI 与框架适配器版本一致,并在生成后提交 void.config.ts 与 void.lock.json。

从 GitHub 部署

为已保存的目标与包管理器生成一个工作流:

void init --github

对于 Cloudflare,把 CLOUDFLARE_API_TOKEN 添加到仓库密钥中。该令牌需要访问你的应用所使用的账户与产品。PostgreSQL 与 MySQL 应用还需要 DATABASE_URL。

团队平台 CI

对于核心自托管平台,使用你自己的工作流与项目部署令牌。设置 VOID_TOKEN、VOID_API_URL 与项目 slug,然后在每个全新的 CI 环境中连接:

void connect "$VOID_API_URL" --no-login
void deploy --platform void --project "$VOID_PROJECT"

支持可选 GitHub Actions 集成的平台使用短期 OIDC 凭据:

void github connect <project> --repo <owner/repo> --executor github_actions

授权该仓库,在仓库中设置 VOID_API_URL,并在生成的工作流中保留 permissions: id-token: write。

如果平台支持托管的 Git 构建,GitHub App 可以在 push 时直接部署,无需工作流文件。

部署到团队平台

使用管理员提供的 API URL。在新的或尚未关联的应用中:

void connect platform.example.com
void deploy --platform void --project my-app

按提示登录并确认创建项目。要使用已有项目,运行 void project link。之后的部署会使用已保存的目标。

项目所有者可以共享访问权限。要为团队安装平台,请从安装 Void 平台开始,它也对比了两种部署目标的功能差异。

部署到另一个 Void 平台

要单次部署到不同的平台,连接它并命名它的项目:

void connect second.example.com
VOID_API_URL=https://second.example.com void deploy --platform void --project my-app

这样可以保留你已保存的目标。每个平台都有各自的项目、密钥与数据。

日志与回滚

检查部署、读取运行时日志,或选择之前的某次部署:

void project status
void project logs
void project rollback

Cloudflare 的日志使用实时 tail;团队平台保留日志历史。

其他运行时

使用 target 设置为 Node.js、Bun 或 Deno 构建一个独立服务器。把 dist/ssr 与 dist/client 一起部署到你自己的托管平台。这些目标上无法使用 D1、KV、R2 与 Workers AI 等 Cloudflare 绑定。

用量与执行限制页面

当应用超出请求数或 CPU 额度时,团队平台会向 API 与页面 action 请求返回结构化的 HTTP 429。浏览器请求会得到一个错误页面。

要自定义它,添加 public/usage-limit.html(请求限制)或 public/execution-limit.html(执行限制)。使用带内联 CSS 与 data URL 图片的独立 HTML 页面。脚本、外部资源与表单提交都会被禁用。缺少自定义页面时使用内置页面。

目录