このドキュメントは、初めて marumie プロジェクトをクローンする人向けのセットアップ手順をまとめたものです。
macOS または WSL2(Windows Subsystem for Linux 2) で開発してください。
以下のツールをインストールし、動作確認してください。
| ツール | 確認コマンド | 期待される結果 |
|---|---|---|
| Node.js 20 以上 | node -v |
v20.x.x 以上 |
| pnpm 10.14.0 | pnpm -v |
10.14.0 |
| Docker | docker info |
エラーなく情報が表示される |
- Node.js: nvm や nodenv などのバージョン管理ツール経由でインストール
- pnpm:
corepack enable && corepack prepare pnpm@10.14.0 --activateまたはnpm install -g pnpm@10.14.0 - Docker: Docker Desktop をインストールして起動
- Windows 側に Docker Desktop をインストールし、「Use the WSL 2 based engine」を有効化
- Settings > Resources > WSL Integration で使用する WSL ディストリビューションを有効化
git clone https://github.com/team-mirai/marumie.git
cd marumie以下の 3 つのファイルをコピーして作成してください。
cp .env.example .env
cp admin/.env.example admin/.env.local
cp webapp/.env.example webapp/.env.local| ファイル | 用途 | 備考 |
|---|---|---|
.env |
Prisma / データベース接続 | そのままで OK |
admin/.env.local |
admin アプリ | Supabase キーの設定が必要(後述) |
webapp/.env.local |
webapp アプリ | そのままで OK |
pnpm run dev:setupこのコマンドで以下が実行されます:
- 依存関係のインストール
- Supabase の起動・マイグレーション実行
- シードデータの投入
初回は Docker イメージのダウンロードがあるため、数分かかります。
dev:setup 完了後、以下のコマンドでキー情報を取得します:
pnpm dlx supabase status出力例:
API URL: http://127.0.0.1:54321
DB URL: postgresql://postgres:postgres@127.0.0.1:54332/postgres
Studio URL: http://127.0.0.1:54323
Inbucket URL: http://127.0.0.1:54324
anon key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
service_role key: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
取得したキーを以下のファイルに設定してください:
admin/.env.local に設定:
SUPABASE_ANON_KEY="上記の anon key の値"
SUPABASE_SERVICE_ROLE_KEY="上記の service_role key の値".env(ルート) に追記:
SUPABASE_SERVICE_ROLE_KEY="上記の service_role key の値"pnpm run devSupabase、webapp(ポート 3000)、admin(ポート 3001)が同時に起動します。
| アプリ | URL | 説明 |
|---|---|---|
| webapp | http://localhost:3000 | 一般ユーザー向けフロントエンド |
| admin | http://localhost:3001 | 管理画面 |
| Supabase Studio | http://127.0.0.1:54323 | データベース管理 GUI |
| Mailpit | http://127.0.0.1:54324 | メールテスト用ツール |
| ロール | Password | |
|---|---|---|
| Admin | foo@example.com | foo@example.com |
| User | bar@example.com | bar@example.com |
Vercelで行われるwebappのbuild過程で自動的にマイグレーションが実行されます(build:vercel スクリプト内で db:setup を実行)。
マイグレーションは初回セットアップ(pnpm run dev:setup)時に自動実行されます。手動でマイグレーションやデータベースリセットを行う場合は、以下のコマンドをプロジェクトルートから実行してください:
pnpm run db:migrate # マイグレーション実行(開発環境)
pnpm run db:migrate:deploy # マイグレーション実行(本番同等)
pnpm run db:reset # データベース完全リセット(Supabaseリセット + マイグレーション + シード)
pnpm run db:seed # シードデータのみ投入webappでモックデータを使用する場合は、webapp/.env.local に以下を追加してください:
USE_MOCK_DATA=true設定後、トランザクションページのバックエンドがモックデータを返すようになります。
data/sampledata.csv に政治資金の取引データのサンプルが含まれています。管理画面(http://localhost:3001)の「CSVアップロード」機能からこのファイルをアップロードして確認できます。
ポート番号は supabase/config.toml で設定されています:
| サービス | ポート | 設定箇所 |
|---|---|---|
| API | 54321 | Supabase デフォルト |
| PostgreSQL (DB) | 54332 | [db] port |
| Studio | 54323 | [studio] port |
| Inbucket (メール) | 54324 | [inbucket] port |
Error: Cannot connect to Docker daemon
→ Docker Desktop が起動しているか確認: docker info
Error: Port 3000 is already in use
→ 該当プロセスを終了: lsof -i :3000 で PID を確認し kill -9 <PID>
→ 停止してから再起動: pnpm run supabase:stop && pnpm run supabase:start
→ pnpm run db:reset
→ クリーンインストール: pnpm run fresh
pnpm run dev # webapp + admin を同時起動(推奨)
pnpm run dev:webapp # webapp のみ起動
pnpm run dev:admin # admin のみ起動pnpm run db:reset # データベース完全リセット(Supabaseリセット + マイグレーション + シード)
pnpm run db:migrate # マイグレーション実行(開発環境)
pnpm run db:migrate:deploy # マイグレーション実行(本番同等)
pnpm run db:seed # シードデータ投入
pnpm run db:studio # Prisma Studio 起動pnpm run lint # Lint 実行
pnpm run format # コードフォーマット
pnpm run typecheck # 型チェック
pnpm run test # テスト実行pnpm --filter admin test:e2e # E2Eテスト実行(ヘッドレス)
pnpm --filter admin test:e2e:ui # UIモードで実行(デバッグ用)
pnpm --filter admin test:e2e:headed # ブラウザを表示して実行注意: E2Eテスト実行前に Supabase が起動している必要があります。
WSL2 で初めて実行する場合、ブラウザのシステム依存関係が必要です:
# Playwrightの依存関係をインストール(sudo必要)
pnpm --filter admin exec playwright install-deps chromiumpnpm run supabase:start # Supabase 起動
pnpm run supabase:stop # Supabase 停止
pnpm run supabase:status # Supabase 状態確認- README.md - プロジェクト概要
- CLAUDE.md - コード規約・アーキテクチャ
- backend-architecture-guide.md - バックエンドのアーキテクチャ詳細
- admin-ui-guidelines.md - admin の UI コンポーネントガイドライン