シャドウバース EVOLVE 戦績管理ツールの環境設定ガイド
cp .env.example .env.local- https://neon.tech にアクセス
- GitHubアカウントでサインアップ
- "Create a project" をクリック
- プロジェクト名:
shadowverse-stats - リージョン: Asia Pacific (Tokyo) 推奨
- ダッシュボードから "Connection Details" を確認
- 接続文字列をコピー
# .env.local に追加
DATABASE_URL="postgresql://username:password@ep-xxx.ap-southeast-1.aws.neon.tech/neondb?sslmode=require"- https://clerk.com にアクセス
- アカウント作成・ログイン
- "Create application" をクリック
- アプリ名:
shadowverse-evolve-stats - 認証方法: Email + Password + OAuth (Google推奨)
- ダッシュボードの "API Keys" セクション
- Publishable key と Secret key をコピー
# .env.local に追加
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY="pk_test_xxxxx"
CLERK_SECRET_KEY="sk_test_xxxxx"localhost は使用できません。以下の方法でWebhookを設定してください。
- ngrokインストール
# macOSの場合
brew install ngrok
2. **アプリケーション起動**
```bash
npm run dev- 新しいターミナルでngrok起動
ngrok http 3000- ngrok URL確認
Session Status online
Account your-account (Plan: Free)
Version 3.1.0
Region Japan (jp)
Latency -
Web Interface http://127.0.0.1:4040
Forwarding https://abc123.ngrok.io -> http://localhost:3000
- Clerk Webhook設定
- Clerk ダッシュボードの "Configure" → "Webhooks" へ
- "Add endpoint" をクリック
- Endpoint URL:
https://abc123.ngrok.io/api/webhooks/clerk(⚠️ ngrokのHTTPS URLを使用) - イベント選択:
user.created,user.updated,user.deleted - "Create" をクリック
- Webhook secret をコピー
# 一時的に本番デプロイしてWebhook設定
vercel --prod
# 表示されたURLを使用
# https://your-project-name.vercel.app/api/webhooks/clerk# .env.local に追加
CLERK_WEBHOOK_SECRET="whsec_xxxxx"# .env.local に追加
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="your-secret-key-here" # ランダム文字列生成# Database
DATABASE_URL="postgresql://username:password@ep-cool-lab-123456.ap-southeast-1.aws.neon.tech/neondb?sslmode=require"
# Clerk Authentication
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY="pk_test_Y2xlcmsuZXhhbXBsZS5jb20k"
CLERK_SECRET_KEY="sk_test_1234567890abcdef"
CLERK_WEBHOOK_SECRET="whsec_abcdef1234567890"
# Next.js
NEXTAUTH_URL="http://localhost:3000"
NEXTAUTH_SECRET="super-secret-key-for-nextauth"# マイグレーション実行
npm run db:generate
npm run db:migrate
# シードデータ投入(オプション)
psql $DATABASE_URL -f lib/db/migrations/seed.sqlnpm run devブラウザで http://localhost:3000 にアクセスして動作確認
- 開発環境:
localhost:3000 - 本番環境: 実際のドメイン
サインイン後: /dashboard
サインアウト後: /
サインアップ後: /dashboard
- Google OAuth を有効化
- 必要に応じてDiscord, GitHubも追加
# Vercel CLI で環境変数設定
vercel env add DATABASE_URL
vercel env add NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY
vercel env add CLERK_SECRET_KEY
vercel env add CLERK_WEBHOOK_SECRET
vercel env add NEXTAUTH_SECRET- Clerk ダッシュボードでWebhook URLを本番ドメインに変更
https://your-app.vercel.app/api/webhooks/clerk
-
.env.localをGitにコミットしない.gitignoreに既に含まれているか確認
-
秘密鍵の管理
CLERK_SECRET_KEYとCLERK_WEBHOOK_SECRETは絶対に公開しない- 定期的にキーローテーションを実施
-
本番環境
- 強力な
NEXTAUTH_SECRETを生成 - データベース接続にSSLを使用
- 強力な
# 接続テスト
npm run db:studio- キーの先頭文字列確認(
pk_test_,sk_test_) - ドメイン設定確認
- リダイレクトURL設定確認
# ❌ 無効なURL例
http://localhost:3000/api/webhooks/clerk # localhostは外部から到達不可
https://example.com/api/webhooks/clerk/ # 末尾スラッシュあり
https://example.com/webhooks/clerk # /api/ パス抜け
# ✅ 正しいURL例
https://abc123.ngrok.io/api/webhooks/clerk # ngrok HTTPS URL
https://your-app.vercel.app/api/webhooks/clerk # Vercel本番URL- ngrok起動確認
# ngrok状態確認
curl http://localhost:4040/api/tunnels
# ngrok Web UI確認
open http://127.0.0.1:4040- エンドポイント動作確認
# Webhook エンドポイントテスト
curl -X POST https://your-ngrok-url.ngrok.io/api/webhooks/clerk \
-H "Content-Type: application/json" \
-d '{"test": "webhook"}'- Clerkダッシュボードで配信履歴確認
- Webhooks → 作成したWebhook → "Recent deliveries" タブ
- エラーメッセージとレスポンスコード確認
# Error: "URL not reachable"
# 原因: ngrokが停止またはNext.jsアプリが停止
# 解決: 両方のプロセス再起動
# Error: "Signature verification failed"
# 原因: CLERK_WEBHOOK_SECRET が間違っている
# 解決: Clerkダッシュボードから正しいSecretを取得
# Error: "500 Internal Server Error"
# 原因: データベース接続エラーまたはコードエラー
# 解決: npm run dev のコンソールでエラーログ確認- 開発時は必ずngrokのHTTPS URLを使用
- Webhook secret は環境変数で管理
- ngrok URL変更時はClerkの設定も更新
- 本番デプロイ時にWebhook URLを本番ドメインに変更
# 型チェック
npm run typecheck
# リント
npm run lint
# データベーススキーマ確認
npm run db:studio
# ビルドテスト
npm run build- 依存関係インストール:
npm install - 環境変数設定:
.env.local作成 - データベースマイグレーション:
npm run db:migrate - 開発サーバー起動:
npm run dev
- 新機能開発前:
git pull - マイグレーション確認:
npm run db:generate - 型チェック:
npm run typecheck - コミット前:
npm run lint
- 環境変数の設定完了
- データベースマイグレーション実行
- Clerk Webhook URL更新
- OAuth設定確認
- セキュリティ設定確認
- パフォーマンステスト実行
設定で問題が発生した場合は、以下を確認してください:
- 各サービスのステータスページ
- ログ出力(
npm run devのコンソール) - ブラウザのDeveloper Tools
- このプロジェクトのREADME.md
詳細な技術情報は README.md を参照してください。