コンテンツへスキップ
My Site

Vercel へのデプロイ

Vercel へのデプロイ

このガイドでは、notro サイトを Vercel にデプロイする方法を説明します。

前提条件

1. プロジェクトをインポートする

  1. vercel.com にログインして Add New Project をクリック

  2. Import Git Repository をクリックしてリポジトリを選択

  3. Vercel が Astro プロジェクトを自動検出してほとんどの設定を事前入力します

2. ビルドを設定する

ビルド設定を確認します:

設定
Framework PresetAstro
Build Commandpnpm build
Output Directorydist
Install Commandpnpm install
Node.js Version24.xSettings → General で設定)

Astro サイトがサブディレクトリにあるモノレポの場合は、Root Directory にパッケージパス(例: templates/blog)を設定します。

3. 環境変数を設定する

Environment Variables をクリックして以下を追加します:

変数環境
NOTION_TOKENProduction、PreviewNotion インテグレーションシークレット
NOTION_DATASOURCE_IDProduction、PreviewNotion データベース UUID

4. デプロイする

Deploy をクリックします。Vercel が pnpm installpnpm build を実行し、dist/ ディレクトリをグローバルにデプロイします。

5. 自動デプロイとリビルドトリガー

Vercel は本番ブランチへのプッシュごとに自動的にデプロイします。Notion のコンテンツのみの変更には、Deploy Hook を設定します:

  1. SettingsGitDeploy Hooks に移動

  2. Create Hook をクリックして名前を入力し、ブランチを選択

  3. URL をコピー

この URL をクロンジョブ、GitHub Actions、または Notion オートメーションで使ってコンテンツ変更時のリビルドをトリガーします:

curl -X POST "https://api.vercel.com/v1/integrations/deploy/HOOK_ID"

GitHub Actions によるスケジュールリビルド

# .github/workflows/rebuild.yml
name: Scheduled rebuild
on:
  schedule:
    - cron: "0 2 * * *"   # 毎日 UTC 2:00

jobs:
  rebuild:
    runs-on: ubuntu-latest
    steps:
      - name: Trigger Vercel deploy hook
        run: curl -X POST "${{ secrets.VERCEL_DEPLOY_HOOK }}"

VERCEL_DEPLOY_HOOK を GitHub リポジトリの Secrets に追加してください。

カスタムドメイン

  1. プロジェクト → SettingsDomainsAdd に移動

  2. ドメインを入力して DNS 設定の指示に従う

  3. Vercel が Let's Encrypt で TLS 証明書を自動プロビジョニング

Vercel Edge Functions(任意)

Astro の SSR 機能を使う場合は Vercel アダプターをインストールします:

pnpm add @astrojs/vercel

// astro.config.mjs

import vercel from "@astrojs/vercel/serverless";

export default defineConfig({

  output: "server",

  adapter: vercel(),

  // ...

});

注意: ほとんどのサイトには notro の静的サイト生成モード(output: "static"、デフォルト)が推奨されます。SSR はサーバーサイドの検索やパーソナライゼーションなどの機能に必要な場合のみ使用してください。

トラブルシューティング

"Cannot find module" でビルド失敗 node_modules がリポジトリにコミットされていないことを確認してください。Vercel は依存関係を一から インストールします。 Node.js バージョンの不一致 Settings → General → Node.js Version24.x を設定するか、.nvmrc ファイルを追加します:

24
大規模な Notion データベースでメモリ制限超過

Vercel のビルドコンテナには 4 GB のメモリ制限があります。大規模なサイトでは、loader()filter オプションを使って公開ページのみ取得することを検討してください。