clerk-deploy-integration
Clerkを各種プラットフォームへのデプロイメント用に設定できます。Vercel、Netlify、Railway、その他のプラットフォームへのデプロイ時、または本番環境のセットアップ時に使用します。「deploy clerk」「clerk Vercel」「clerk Netlify」「clerk production deploy」「clerk Railway」といったフレーズで起動します。
description の原文を見る
Configure Clerk for deployment on various platforms. Use when deploying to Vercel, Netlify, Railway, or other platforms, or when setting up production environment. Trigger with phrases like "deploy clerk", "clerk Vercel", "clerk Netlify", "clerk production deploy", "clerk Railway".
SKILL.md 本文
Clerk デプロイメント統合
概要
Clerk認証を使用したアプリケーションをさまざまなホスティングプラットフォームにデプロイします。
前提条件
- Clerk本番インスタンスの設定が完了していること
- 本番APIキーの準備ができていること
- ホスティングプラットフォームのアカウントを持っていること
手順
プラットフォーム1: Vercelデプロイメント
ステップ1: 環境変数の設定
# Vercel CLIを使用
vercel env add NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY production
vercel env add CLERK_SECRET_KEY production
vercel env add CLERK_WEBHOOK_SECRET production
# またはvercel.json内で設定
// vercel.json
{
"env": {
"NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY": "@clerk-publishable-key",
"CLERK_SECRET_KEY": "@clerk-secret-key"
},
"headers": [
{
"source": "/(.*)",
"headers": [
{ "key": "X-Frame-Options", "value": "DENY" },
{ "key": "X-Content-Type-Options", "value": "nosniff" }
]
}
]
}
ステップ2: Clerkダッシュボードの設定
- Vercelドメインを許可されたオリジンに追加する
- Clerkダッシュボードで本番URLを設定する
- Webhookエンドポイントを設定する
ステップ3: デプロイ
# 本番にデプロイ
vercel --prod
# またはGitにリンクして自動デプロイを設定
vercel link
プラットフォーム2: Netlifyデプロイメント
ステップ1: 環境変数の設定
# netlify.toml
[build]
command = "npm run build"
publish = ".next"
[build.environment]
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY = "pk_live_..."
# Netlifyダッシュボードでシークレットを追加
# Site settings > Environment variables > CLERK_SECRET_KEY
ステップ2: APIのためのNetlify Functionsを作成
// netlify/functions/clerk-webhook.ts
import { Handler } from '@netlify/functions'
import { Webhook } from 'svix'
export const handler: Handler = async (event) => {
const WEBHOOK_SECRET = process.env.CLERK_WEBHOOK_SECRET!
const svix_id = event.headers['svix-id']
const svix_timestamp = event.headers['svix-timestamp']
const svix_signature = event.headers['svix-signature']
const wh = new Webhook(WEBHOOK_SECRET)
try {
const evt = wh.verify(event.body!, {
'svix-id': svix_id!,
'svix-timestamp': svix_timestamp!,
'svix-signature': svix_signature!
})
// イベントを処理
return { statusCode: 200, body: JSON.stringify({ success: true }) }
} catch (err) {
return { statusCode: 400, body: 'Invalid signature' }
}
}
プラットフォーム3: Railwayデプロイメント
ステップ1: Railwayの設定
# railway.json
{
"build": {
"builder": "NIXPACKS"
},
"deploy": {
"startCommand": "npm start",
"healthcheckPath": "/api/health"
}
}
ステップ2: 環境変数の設定
# Railway CLIを使用
railway variables set NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_live_...
railway variables set CLERK_SECRET_KEY=sk_live_...
railway variables set CLERK_WEBHOOK_SECRET=whsec_...
プラットフォーム4: Dockerデプロイメント
Dockerfile
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
# NEXT_PUBLIC_変数のビルド時引数
ARG NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY
ENV NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=$NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY
RUN npm run build
FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY --from=builder /app/.next/standalone ./
COPY --from=builder /app/.next/static ./.next/static
COPY --from=builder /app/public ./public
# ランタイム環境変数
ENV CLERK_SECRET_KEY=""
ENV PORT=3000
EXPOSE 3000
CMD ["node", "server.js"]
# ビルドと実行
docker build \
--build-arg NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_live_... \
-t myapp .
docker run -p 3000:3000 \
-e CLERK_SECRET_KEY=sk_live_... \
myapp
プラットフォーム5: AWS Amplify
# amplify.yml
version: 1
frontend:
phases:
preBuild:
commands:
- npm ci
build:
commands:
- npm run build
artifacts:
baseDirectory: .next
files:
- '**/*'
cache:
paths:
- node_modules/**/*
Clerkダッシュボード設定
本番ドメインのセットアップ
- Clerkダッシュボード > Configure > Domainsに移動
- 本番ドメインを追加
- SSL設定(ほとんどのプラットフォームで自動)
Webhook設定
- Clerkダッシュボード > Webhooksに移動
- エンドポイントを追加:
https://yourdomain.com/api/webhooks/clerk - 購読するイベントを選択
- Webhookシークレットを環境変数にコピー
OAuthリダイレクトURL
- 本番URLでOAuthプロバイダーを更新
https://yourdomain.com/sso-callbackを追加- セキュリティのため開発用URLを削除
出力
- プラットフォーム固有のデプロイメント設定
- 設定済みの環境変数
- Webhookエンドポイントの準備完了
- 設定済みの本番ドメイン
デプロイメントチェックリスト
- 本番Clerkキーが設定されている
- ドメインがClerkダッシュボードに追加されている
- Webhookエンドポイントが設定されている
- OAuthリダイレクトURLが更新されている
- SSL/HTTPSが有効になっている
- セキュリティヘッダーが設定されている
- ヘルスチェックエンドポイントが動作している
エラーハンドリング
| エラー | 原因 | 解決策 |
|---|---|---|
| サインイン時に500エラー | シークレットキーが見つからない | CLERK_SECRET_KEYをプラットフォームに追加 |
| Webhookが失敗 | エンドポイントURLが間違っている | ClerkダッシュボードでURLを更新 |
| CORSエラー | ドメインが許可されていない | Clerkの許可されたオリジンにドメインを追加 |
| リダイレクトループ | サインインURLが間違っている | CLERK_SIGN_IN_URL設定を確認 |
リソース
次のステップ
Webhook設定についてはclerk-webhooks-eventsに進んでください。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- Brmbobo
- リポジトリ
- Brmbobo/Web2podcast
- ライセンス
- MIT
- 最終更新
- 2026/1/26
Source: https://github.com/Brmbobo/Web2podcast / ライセンス: MIT
関連スキル
superpowers-streamer-cli
SuperPowers デスクトップストリーマーの npm パッケージをインストール、ログイン、実行、トラブルシューティングできます。ユーザーが npm から `superpowers-ai` をセットアップしたい場合、メールまたは電話でサインインもしくはアカウント作成を行いたい場合、ストリーマーを起動したい場合、表示されたコントロールリンクを開きたい場合、後で停止したい場合、またはソースコードへのアクセスなしに npm やランタイムの一般的な問題から復旧したい場合に使用します。
catc-client-ops
Catalyst Centerのクライアント操作・監視機能 - 有線・無線クライアントのリスト表示・フィルタリング、MACアドレスによる詳細なクライアント検索、クライアント数分析、時間軸での分析、SSIDおよび周波数帯によるフィルタリング、無線トラブルシューティング機能を提供します。MACアドレスやIPアドレスでのクライアント検索、サイト別やSSID別のクライアント数集計、無線周波数帯の分布分析、Wi-Fi信号の問題調査が必要な場合に活用できます。
ci-cd-and-automation
CI/CDパイプラインの設定を自動化します。ビルドおよびデプロイメントパイプラインの構築または変更時に使用できます。品質ゲートの自動化、CI内のテストランナー設定、またはデプロイメント戦略の確立が必要な場合に活用します。
shipping-and-launch
本番環境へのリリース準備を行います。本番環境へのデプロイ準備が必要な場合、リリース前チェックリストが必要な場合、監視機能の設定を行う場合、段階的なロールアウトを計画する場合、またはロールバック戦略が必要な場合に使用します。
linear-release-setup
Linear Releaseに向けたCI/CD設定を生成します。リリース追跡の設定、LinearのCIパイプライン構築、またはLinearリリースとのデプロイメント連携を実施する際に利用できます。GitHub Actions、GitLab CI、CircleCIなど複数のプラットフォームに対応しています。
tracking-application-response-times
API エンドポイント、データベースクエリ、サービスコール全体にわたるアプリケーションのレスポンスタイムを追跡・最適化できます。パフォーマンス監視やボトルネック特定の際に活用してください。「レスポンスタイムを追跡する」「API パフォーマンスを監視する」「遅延を分析する」といった表現で呼び出せます。