デプロイ
EddieドキュメントをVercelでWebに公開します。
クイックデプロイ
1. Gitを初期化
cd my-docs
git init
git add .
git commit -m "Initial commit"2. GitHubリポジトリを作成
GitHub CLIを使用:
gh repo create my-docs --public --source=. --remote=origin
git push -u origin mainまたは手動で:
- github.com/new にアクセス
- リポジトリ
my-docsを作成 - コードをプッシュ:bash
git remote add origin https://github.com/YOUR_USERNAME/my-docs.git git push -u origin main
3. Vercelにデプロイ
vercel.com にアクセス:
- 「Add New Project」 をクリック
- GitHubリポジトリをインポート
- VercelがVitePress設定を自動検出:
- Framework: VitePress
- Build Command:
npm run build - Output Directory:
edit/4.publish📚/.vitepress/dist
- 「Deploy」 をクリック
約60秒で https://my-docs.vercel.app でサイトが公開されます!
手動設定
Vercelが設定を自動検出しない場合:
Framework Preset: VitePress
Build Command:
npm run buildOutput Directory:
edit/4.publish📚/.vitepress/distInstall Command:
npm installRoot Directory: ./(デフォルトのまま)
環境変数
ベクトル検索には OPENAI_API_KEY が必要ですが、これはローカル開発専用です。
Vercelには追加しないでください - デプロイされたサイトは、サーバー側検索のない静的HTML/JSです。
本番環境でサーバー側検索が必要な場合は、高度: APIルートを参照してください。
自動デプロイ
初期セットアップ後、main へのプッシュごとに新しいデプロイがトリガーされます:
# ドキュメントを編集
vim edit/4.publish📚/getting-started.md
# コミットしてプッシュ
git add .
git commit -m "docs: はじめにガイドを更新"
git push
# Vercelが自動的に再ビルドしてデプロイ(30-60秒)Vercelダッシュボードでデプロイ状況を確認できます。
カスタムドメイン
Vercelでドメインを追加
- Vercelのプロジェクトにアクセス
- 「Settings」 → 「Domains」 をクリック
- ドメインを追加(例:
docs.mycompany.com) - DNS指示に従う
DNSを設定
ドメインレジストラでVercelのDNSレコードを追加:
オプションA: CNAME(サブドメイン)
CNAME docs cname.vercel-dns.comオプションB: Aレコード(Apexドメイン)
A @ 76.76.21.21伝播には5〜60分かかります。
複数環境
プレビューデプロイ
すべてのプルリクエストはプレビューURLを取得:
git checkout -b feature/new-guide
# 変更を加える
git push origin feature/new-guide
# GitHubでPRを作成
# VercelがプレビューURLをコメント: https://my-docs-abc123.vercel.app本番ブランチ
デフォルトでは、main ブランチ = 本番環境。
代わりに production ブランチを使用するには:
- Vercelプロジェクト設定にアクセス
- 「Git」 → 「Production Branch」
productionに変更
これで:
mainへのプッシュ → プレビューデプロイproductionへのプッシュ → 本番デプロイ
ビルド最適化
ビルドの高速化
Eddieプロジェクトは高速にビルドされます(約20-30秒)が、大規模サイトの場合:
1. VitePressキャッシュを有効化
Eddieで既に設定済み!.vitepress/cache/ にキャッシュされます。
2. npmの代わりにpnpmを使用
# Vercel設定で
Install Command: pnpm installnpmより約20%高速。
3. 依存関係を減らす
package.json を最小限に保つ。Eddieは必須のもののみを含みます。
ビルドサイズ
典型的なEddieサイト:
- 10ドキュメント: 約500 KB
- 50ドキュメント: 約1.5 MB
- 100ドキュメント: 約2.5 MB
VitePressは自動的に最小化と圧縮を行います。
SEO設定
基本的なSEO
.system/site-config/config.js を編集:
export default defineConfig({
title: 'My Docs',
description: 'プロジェクトの包括的なドキュメント',
head: [
['meta', { name: 'keywords', content: 'ドキュメント, ガイド, チュートリアル' }],
['meta', { property: 'og:image', content: '/og-image.png' }]
]
})サイトマップ
VitePressは /sitemap.xml でサイトマップを自動生成します。
Google Search Consoleに送信:
- search.google.com/search-console にアクセス
- プロパティを追加:
https://my-docs.vercel.app - サイトマップを送信:
https://my-docs.vercel.app/sitemap.xml
robots.txt
edit/4.publish📚/public/robots.txt を作成:
User-agent: *
Allow: /
Sitemap: https://my-docs.vercel.app/sitemap.xmlアナリティクス
Vercelアナリティクス
Vercelダッシュボードで有効化:
- プロジェクトにアクセス
- 「Analytics」 タブ
- 「Enable」 をクリック
無料枠: 月間100Kイベント
Googleアナリティクス
.system/site-config/config.js に追加:
head: [
['script', {
async: true,
src: 'https://www.googletagmanager.com/gtag/js?id=G-XXXXXXXXXX'
}],
['script', {}, `
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-XXXXXXXXXX');
`]
]高度: APIルート
本番環境にサーバー側ベクトル検索を追加するには:
オプション1: Vercelサーバーレス関数
api/search.js を作成:
import { VectorStore } from 'eddie-vector-search';
export default async function handler(req, res) {
const { query } = req.query;
const store = new VectorStore(process.env.VECTOR_DATA_PATH);
const results = await store.search(query);
res.json(results);
}Vercel環境変数に OPENAI_API_KEY を追加。
オプション2: 静的検索インデックス
検索インデックスを事前生成してビルドに含める:
npm run reindex
# .system/vector-data/vector_store.json を public/ にコピー
cp .system/vector-data/vector_store.json edit/4.publish📚/public/クライアント側検索を作成(本番環境でOpenAI API不要)。
これはより複雑ですが、バックエンドコストがゼロです。
トラブルシューティング
ビルド失敗: 「Module not found」
package.json にすべての依存関係が含まれていることを確認:
"dependencies": {
"vitepress": "^1.0.0",
"eddie-vector-search": "^1.0.0"
}その後:
npm install
git add package.json package-lock.json
git commit -m "fix: 欠けている依存関係を追加"
git pushデプロイされたサイトで404
Vercel設定で Output Directory を確認:
edit/4.publish📚/.vitepress/distdist や .vitepress/dist ではありません。
ビルドは成功するがページが空白
ブラウザコンソールでエラーを確認。通常はアセットパスの問題。
.system/site-config/config.js で base が正しく設定されていることを確認:
export default defineConfig({
base: '/', // カスタムドメインの場合
// base: '/my-docs/', // GitHub Pagesの場合
})Vercelデプロイが遅い
典型的なビルド時間: 20-40秒
遅い場合:
- ビルドログでエラーを確認
npmの代わりにpnpmを試す- 依存関係を減らす
次のステップ
Eddieサイトが公開されました!🎉
- チームとURLを共有
- カスタムドメインを設定
- アナリティクスを有効化
- 優れたドキュメントを書き続ける