テック技報最新号へ →
インフラ

Void: Vite のフルスタックアプリを Cloudflare にデプロイする(設定は void.config.ts に集約)

Cloudflare(VoidZero)が公開した OSS の SDK・CLI・セルフホスト基盤。中身は Hono・Drizzle ORM・Better Auth で、void init から void deploy までで D1 などのリソース作成とマイグレーションも済む。

@Cloudflare · 2026-10-16
#infra#cloudflare#workers#void#deploy#cli

どんなときに使う?

  • Vite で作るフルスタックアプリを、Workers・D1・KV・R2 込みで手早く出したいとき
  • 社員が作ったアプリを、自社の Cloudflare アカウント内の共通基盤に安全にデプロイさせたいとき(Void Platform)

やり方

  1. 作成
    pnpm create void my-app        # ディレクトリ作成まで
    # 既存の Vite アプリなら: pnpm add -D void && pnpm void init

    UI フレームワーク、スターター、デプロイ先を選ぶ。ビルドツールの既定は Vite+。最初の DB はローカルでそのまま動く D1 が無難

  2. ローカル実行: npm run dev → http://localhost:5173
  3. API ルート: routes/api/hello.ts に defineHandler で書くと、パスが URL になり、クライアントの fetch(void/client)に戻り値の型が付く
  4. デプロイ: npx void deploy(未設定なら --platform cloudflare)。ブラウザでログイン → ビルド → リソース作成 → マイグレーション → URL 表示

設定の置き場所

  • cloudflare.config.ts や wrangler.jsonc は置かない。Cloudflare の設定は void.config.ts の cloudflare フィールド に書くと、生成される Worker 設定にそのまま渡される
  • 作成したリソースの ID とマイグレーション履歴は void.lock.json に記録される。void.config.ts と一緒にコミットする(生成された Cloudflare 設定ファイルはコミットしない)
  • 既存の wrangler.json(c) は void init / void deploy 時に移行され、バックアップが .void/config-migration/ に残る
ts
import { defineConfig } from 'void/config';

export default defineConfig({
  cloudflare: {
    name: 'my-app',
    workers_dev: false, // *.workers.dev の公開 URL を止める
  },
});

@__syumai は試したアプリが荒らされると面倒なので workers_dev: false にしていた。カスタムドメインだけで出したいときや、公開前の試作に使える。

Void CLI と cf CLI

  • Void CLI は内部で Cloudflare の新しい cf CLI を使っている
  • cf CLI は cf cli search サブコマンドで操作を探せる。エージェントに「cf CLI で〇〇して」と頼むと、cf --help → cf cli search とたどって自分で適切なコマンドを見つけた、という報告がある
  • 一方で、wrangler から移行するときに対応する cf コマンドを探すのに手間取ったという声もある(対応表はまだない)

Void Platform(チーム向けセルフホスト)

  • 自社の Cloudflare アカウントに基盤を立て、開発者は Void CLI をその URL に向けてデプロイする。ログインは GitHub・Google・OIDC・Cloudflare Access
  • Workers for Platforms が必要。ログの保持やデプロイ履歴からのロールバックが付く
  • 基盤自体も OSS なので、フォークして社内システムに合わせられる
  • @__syumai の読みでは、基盤の構成に PostgreSQL が必要で Cloudflare だけでは完結しないもよう

注意点

  • 出たばかり。cf CLI はベータ
  • pnpm でビルドスクリプトがブロックされたら pnpm approve-builds で esbuild・sharp・workerd を許可する
  • 自分用に出すだけなら Platform は不要。Cloudflare へ直接デプロイすればよい

出典

X の元の投稿を開く