mcpField
V
vite-flare-starter

vite-flare-starter

github.com/jezweb開発1.1k1.2k 回インストール3 週間前に更新
リポジトリ

vite-flare-starter について

vite-flare-starterは、Cloudflare向けのフルスタックテンプレートを独立したアプリに仕立てるスキルです。新規プロジェクトの開発者向けに、ブランド設定、認証やデータベースの準備、ローカル検証、デプロイを案内します。

主な機能

  1. 01テンプレートのクローンと初期化
  2. 02プロジェクト名とブランド設定の変更
  3. 03認証と環境変数の設定
  4. 04D1とR2リソースの準備
  5. 05ローカル検証とCloudflareへのデプロイ

活用シーン

  1. 01テンプレートから新しいフルスタックアプリを開始
  2. 02プロジェクトのログインとストレージを設定
  3. 03アプリをCloudflare Workersにデプロイ

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/jezweb/claude-skills --skill vite-flare-starter

インストール後、Claude Code で/vite-flare-starterを入力して読み込まれたか確認します。

同梱ファイルassets/dev-vars-template.txtassets/wrangler-template.jsonc

詳細

Vite Flare Starter

機能があらかじめそろった Cloudflare スターターをクローンして設定し、独立したプロジェクトにします。完全にリブランドされた、デプロイ可能なフルスタックアプリを作成します。

スタック

レイヤーテクノロジーバージョン
フロントエンドReact、Vite、Tailwind CSS、shadcn/ui19、6.x、v4、latest
バックエンドHono(Cloudflare Workers 上)4.x
データベースD1(エッジ上の SQLite)+ Drizzle ORM0.38+
認証better-auth(Google OAuth + メールアドレス/パスワード)latest
ストレージR2(S3 互換オブジェクトストレージ)—
AIWorkers AI バインディング—
データフェッチTanStack Queryv5
Cloudflare バインディング
バインディング種類用途
DBD1 データベースアプリケーションのプライマリデータベース
AVATARSR2 バケットユーザーのアバター保存
FILESR2 バケット汎用ファイルのアップロード
AIWorkers AIAI モデルの推論
プロジェクト構成
src/
├── client/                 # React frontend
│   ├── components/         # UI components
│   ├── hooks/              # Custom hooks + TanStack Query
│   ├── pages/              # Route pages
│   ├── lib/                # Utilities (auth client, etc.)
│   └── main.tsx            # App entry point
├── server/                 # Hono backend
│   ├── index.ts            # Worker entry point
│   ├── routes/             # API routes
│   ├── middleware/          # Auth, CORS, etc.
│   └── db/                 # Drizzle schema + queries
└── shared/                 # Shared types between client/server
主なコマンド
コマンド用途
pnpm devローカル開発サーバーを起動
pnpm build本番ビルド
pnpm deployCloudflare にデプロイ
pnpm db:migrate:localローカルでマイグレーションを適用
pnpm db:migrate:remote本番環境にマイグレーションを適用
pnpm db:generateスキーマの変更からマイグレーションを生成

ワークフロー

ステップ 1:プロジェクト情報を収集する

以下を確認します。

必須任意
プロジェクト名(kebab-case)管理者メールアドレス
説明(1 文)Google OAuth の認証情報
Cloudflare アカウントカスタムドメイン
ステップ 2:クローンして設定する
2a. クローンして不要なファイルを削除する
git clone https://github.com/jezweb/vite-flare-starter.git PROJECT_DIR --depth 1
cd PROJECT_DIR
rm -rf .git
git init
2b. 置換対象を検索して置き換える

以下の場所で、vite-flare-starter をプロジェクト名に置き換えます。

ファイル対象置換後
wrangler.jsonc"vite-flare-starter"(Worker 名)"PROJECT_NAME"
wrangler.jsoncvite-flare-starter-dbPROJECT_NAME-db
wrangler.jsoncvite-flare-starter-avatarsPROJECT_NAME-avatars
wrangler.jsoncvite-flare-starter-filesPROJECT_NAME-files
package.json"name": "vite-flare-starter""name": "PROJECT_NAME"
package.jsonvite-flare-starter-dbPROJECT_NAME-db
index.html<title> の内容アプリの表示名(タイトルケース)

さらに、wrangler.jsonc で以下を行います。

  • 削除:ハードコードされた account_id の行(wrangler のプロンプトに従うか、環境変数を使用します)
  • 置換:database_id の値を REPLACE_WITH_YOUR_DATABASE_ID に置き換える

package.json のバージョンを "0.1.0" にリセットします。

置換には Edit ツールを使用します(macOS と GNU の違いによる問題を避けるため、sed より推奨)。

2c. 認証シークレットを生成する
BETTER_AUTH_SECRET=$(openssl rand -hex 32 2>/dev/null || python3 -c "import secrets; print(secrets.token_hex(32))")
2d. .dev.vars を作成する

kebab-case のプロジェクト名を変換します。たとえば、my-cool-app は表示名が My Cool App、ID が my_cool_app になります。

# Local Development Environment Variables
# DO NOT COMMIT THIS FILE TO GIT

# Authentication (better-auth)
BETTER_AUTH_SECRET=<generated>
BETTER_AUTH_URL=http://localhost:5173

# Google OAuth (optional)
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=

# Email Auth Control (disabled by default)
# ENABLE_EMAIL_LOGIN=true
# ENABLE_EMAIL_SIGNUP=true

# Application Configuration
APP_NAME=<Display Name>
VITE_APP_NAME=<Display Name>
VITE_APP_ID=<app_id>
VITE_TOKEN_PREFIX=<app_id>_
VITE_GITHUB_URL=
VITE_FOOTER_TEXT=

NODE_ENV=development
2e. Cloudflare リソースを作成する(任意)
npx wrangler d1 create PROJECT_NAME-db
# Extract database_id from output, update wrangler.jsonc

npx wrangler r2 bucket create PROJECT_NAME-avatars
npx wrangler r2 bucket create PROJECT_NAME-files
2f. インストールしてマイグレーションする
pnpm install
pnpm run db:migrate:local
2g. 初回のコミット
git add -A
git commit -m "Initial commit from vite-flare-starter"
ステップ 3:手動で設定する
  1. Google OAuth(使用する場合):Google Cloud Console に移動して OAuth 2.0 クライアント ID を作成し、リダイレクト URI http://localhost:5173/api/auth/callback/google を追加します。クライアント ID とシークレットを .dev.vars にコピーします
  2. ファビコン:public/favicon.svg を置き換えます
  3. CLAUDE.md:プロジェクトの説明を更新し、vite-flare-starter への言及を削除します
  4. index.html:<title> とメタディスクリプションを更新します
ステップ 4:ローカルで確認する
pnpm dev

確認項目:http://localhost:5173 が読み込まれ、自分のアプリ名が表示され、(OAuth を設定した場合)サインアップ/サインインが機能すること。

ステップ 5:本番環境にデプロイする
# Set production secrets
openssl rand -base64 32 | npx wrangler secret put BETTER_AUTH_SECRET
echo "https://PROJECT_NAME.SUBDOMAIN.workers.dev" | npx wrangler secret put BETTER_AUTH_URL
echo "http://localhost:5173,https://PROJECT_NAME.SUBDOMAIN.workers.dev" | npx wrangler secret put TRUSTED_ORIGINS

# If using Google OAuth
echo "your-client-id" | npx wrangler secret put GOOGLE_CLIENT_ID
echo "your-client-secret" | npx wrangler secret put GOOGLE_CLIENT_SECRET

# Migrate remote database
pnpm run db:migrate:remote

# Build and deploy
pnpm run build && pnpm run deploy

重要:初回デプロイ後、BETTER_AUTH_URL を実際の Worker URL に更新してください。本番 URL を Google OAuth のリダイレクト URI に追加してください。

セキュリティ上の識別情報

攻撃者にこのスターターを使用していることを特定されないよう、これらをすべて変更してください。

場所デフォルト値変更方法
ページタイトル"Vite Flare Starter"index.html
UI のアプリ名"Vite Flare Starter"VITE_APP_NAME env var
localStorage キーvite-flare-starter-themeVITE_APP_ID env var
API トークンvfs_ prefixVITE_TOKEN_PREFIX env var
GitHub リンクstarter repoVITE_GITHUB_URL(空にすると非表示)
Worker 名vite-flare-starterwrangler.jsonc
データベース名vite-flare-starter-dbwrangler.jsonc
R2 バケットvite-flare-starter-*wrangler.jsonc

環境変数

ブランディング(VITE_ prefix = フロントエンドで使用可能)
変数用途例
VITE_APP_NAMEUI に表示する名前"My Cool App"
VITE_APP_IDlocalStorage の prefix、Sentry"mycoolapp"
VITE_TOKEN_PREFIXAPI トークンの prefix"mca_"
VITE_GITHUB_URLGitHub リンク(空 = 非表示)""
VITE_FOOTER_TEXTフッターの著作権表示"2026 My Company"
APP_NAMEサーバー側のアプリ名"My Cool App"
認証
変数用途備考
BETTER_AUTH_SECRETセッションの暗号化openssl rand -hex 32
BETTER_AUTH_URL認証のベース URL実際の URL と完全に一致させる必要があります
TRUSTED_ORIGINS許可するオリジンカンマ区切りで、localhost と本番環境を含めます
GOOGLE_CLIENT_IDGoogle OAuthGoogle Cloud Console から取得
GOOGLE_CLIENT_SECRETGoogle OAuthGoogle Cloud Console から取得
ENABLE_EMAIL_LOGINメールアドレス/パスワードを有効化有効にするには "true" を指定
ENABLE_EMAIL_SIGNUPメールアドレスでのサインアップを有効化ENABLE_EMAIL_LOGIN が必要
メール(任意)
変数用途備考
EMAIL_FROM送信者アドレス確認メール/パスワードリセット用
EMAIL_API_KEYメールサービスの API キーResend を推奨

よくあるカスタマイズ

新しいデータベーステーブルを追加する
  1. src/server/db/schema.ts にスキーマを追加します
  2. マイグレーションを生成します:pnpm db:generate
  3. ローカル環境に適用します:pnpm db:migrate:local
  4. 本番環境に適用します:pnpm db:migrate:remote
新しい API ルートを追加する
  1. src/server/routes/ にルートファイルを作成します
  2. src/server/index.ts に登録します
  3. src/client/hooks/ に TanStack Query フックを追加します
認証プロバイダーを変更する

src/server/auth.ts を編集します:socialProviders にプロバイダーを追加し、.dev.vars と本番環境のシークレットに認証情報を追加して、クライアント側のログインボタンを更新します。

機能フラグ

環境変数で機能を制御します:VITE_FEATURE_STYLE_GUIDE=true、VITE_FEATURE_COMPONENTS=true。src/client/lib/features.ts に独自のフラグを追加できます。

トラブルシューティング

症状原因解決方法
認証でホームページに何も表示されずリダイレクトされるTRUSTED_ORIGINS の設定漏れ有効な URL をすべて指定して TRUSTED_ORIGINS を設定します
デプロイ時に "Not authorized" と表示されるaccount_id が正しくないwrangler.jsonc から account_id を削除するか、自分の値を設定します
データベースで 500 エラーが発生するマイグレーションがないpnpm db:migrate:local と pnpm db:migrate:remote を実行します
localStorage に "vite-flare-starter" と表示されるVITE_APP_ID の設定漏れ.dev.vars に VITE_APP_ID=yourapp を設定します
本番環境でのみ認証に失敗するBETTER_AUTH_URL が一致しない実際の Worker URL と完全に一致させる必要があります(https、末尾のスラッシュなし)
Google サインイン時に "redirect_uri_mismatch" と表示されるOAuth リダイレクト URI がないGoogle Cloud Console の OAuth リダイレクト URI に本番 URL を追加します
シークレットを変更しても反映されない再デプロイされていないwrangler secret put では再デプロイされません。実行後に pnpm deploy を実行します

本番環境へのデプロイチェックリスト

  • BETTER_AUTH_SECRET が設定されている(開発環境とは異なる値にすること!)
  • BETTER_AUTH_URL が実際の Worker URL と一致している
  • TRUSTED_ORIGINS に有効な URL がすべて含まれている
  • Google OAuth のリダイレクト URI に本番環境の URL が含まれている
  • リモートデータベースをマイグレーションした(pnpm db:migrate:remote)
  • 設定ファイルに vite-flare-starter への参照がない
  • ファビコンを差し替えた
  • CLAUDE.md を更新した
  • .dev.vars がコミットされていない(.gitignore を確認すること)

コメント