mirror of
https://github.com/alam00000/bentopdf.git
synced 2026-11-05 20:02:47 +01:00
123 lines
4.3 KiB
Markdown
123 lines
4.3 KiB
Markdown
# Vercel にデプロイする
|
||
|
||
[Vercel](https://vercel.com) は、静的サイトを最も簡単にデプロイできるサービスです。
|
||
|
||
## ワンクリックデプロイ
|
||
|
||
[](https://vercel.com/new/clone?repository-url=https://github.com/alam00000/bentopdf)
|
||
|
||
## 手動デプロイ
|
||
|
||
### ステップ 1: リポジトリをフォークする
|
||
|
||
[bentopdf/bentopdf](https://github.com/alam00000/bentopdf) を自分の GitHub アカウントにフォークします。
|
||
|
||
### ステップ 2: Vercel にインポートする
|
||
|
||
1. [vercel.com/new](https://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` フォルダーから配信されるようにしてください。
|
||
:::
|
||
|
||
## トラブルシューティング
|
||
|
||
### ビルドのタイムアウト
|
||
|
||
ビルドがタイムアウトする場合は、次を試してください。
|
||
|
||
```json
|
||
// vercel.json
|
||
{
|
||
"buildCommand": "npm run build",
|
||
"outputDirectory": "dist"
|
||
}
|
||
```
|
||
|
||
### 更新すると 404 になる
|
||
|
||
SPA のルーティング用に `vercel.json` を追加します。
|
||
|
||
```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` に追加します。
|
||
|
||
```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` が返れば正常です。
|