Files
bentopdf/docs/ja/self-hosting/vercel.md

4.3 KiB
Raw Permalink Blame History

Vercel にデプロイする

Vercel は、静的サイトを最も簡単にデプロイできるサービスです。

ワンクリックデプロイ

Deploy with Vercel

手動デプロイ

ステップ 1: リポジトリをフォークする

bentopdf/bentopdf を自分の GitHub アカウントにフォークします。

ステップ 2: Vercel にインポートする

  1. vercel.com/new にアクセスします
  2. フォークしたリポジトリを選択します
  3. プロジェクトを設定します。
設定 値
Framework Preset Vite
Build Command npm run build
Output Directory dist
Install Command npm install

ステップ 3: 環境変数(任意)

必要に応じて、次の変数を追加します。

変数 説明
SIMPLE_MODE 最小限の UI にするには true を設定します
VITE_BRAND_NAME カスタムブランド名("BentoPDF" を置き換えます)
VITE_BRAND_LOGO public/ からの相対ロゴパス(例: images/my-logo.svg)
VITE_FOOTER_TEXT カスタムのフッター/著作権テキスト
VITE_DEFAULT_LANGUAGE デフォルトの UI 言語(例: fr、de、es)

ステップ 4: デプロイする

「Deploy」をクリックして、ビルドが完了するのを待ちます。

カスタムドメイン

  1. プロジェクトの設定を開きます
  2. 「Domains」に移動します
  3. カスタムドメインを追加します
  4. 指示に従って DNS を設定します

制限事項

::: warning 大きなファイル Vercel のサーバーレス関数には 50MB の制限があります。BentoPDF は静的サイトなので影響はないはずですが、WASM モジュールは大きく(合計で約 100MB)、/public フォルダーから配信されるようにしてください。 :::

トラブルシューティング

ビルドのタイムアウト

ビルドがタイムアウトする場合は、次を試してください。

// vercel.json
{
  "buildCommand": "npm run build",
  "outputDirectory": "dist"
}

更新すると 404 になる

SPA のルーティング用に vercel.json を追加します。

{
  "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }]
}

Word/ODT/Excel から PDF への変換が動作しない

LibreOffice WASM による変換には SharedArrayBuffer が必要で、すべてのページで次のレスポンスヘッダーが必要です。

  • Cross-Origin-Embedder-Policy: require-corp
  • Cross-Origin-Opener-Policy: same-origin

事前圧縮された .wasm.gz と .data.gz ファイルにも、ブラウザーが展開できるよう Content-Encoding: gzip が必要です。

これらを vercel.json に追加します。

{
  "rewrites": [{ "source": "/(.*)", "destination": "/index.html" }],
  "headers": [
    {
      "source": "/(.*)",
      "headers": [
        { "key": "Cross-Origin-Embedder-Policy", "value": "require-corp" },
        { "key": "Cross-Origin-Opener-Policy", "value": "same-origin" },
        { "key": "Cross-Origin-Resource-Policy", "value": "cross-origin" }
      ]
    },
    {
      "source": "/libreoffice-wasm/soffice.wasm.gz",
      "headers": [
        { "key": "Content-Type", "value": "application/wasm" },
        { "key": "Content-Encoding", "value": "gzip" }
      ]
    },
    {
      "source": "/libreoffice-wasm/soffice.data.gz",
      "headers": [
        { "key": "Content-Type", "value": "application/octet-stream" },
        { "key": "Content-Encoding", "value": "gzip" }
      ]
    }
  ]
}

確認するには、DevTools のコンソールを開いて console.log(window.crossOriginIsolated) を実行します。true が返れば正常です。