Getting Started

ローカル環境セットアップ

mise によるツールチェーン構築から、DB 起動・テストデータ投入・各ロールのログイン画面到達まで。

Updated 2026-05-28

前提

macOS / Linux を想定。Docker Desktop(または互換のコンテナランタイム)がインストール済みであること。

1. mise の導入

mise で Node.js / pnpm のバージョンと環境変数を管理する。

shellinstall mise
# macOS (Homebrew) $ brew install mise # zsh への統合 $ echo 'eval "$(mise activate zsh)"' >> ~/.zshrc $ exec zsh

その他の OS は mise 公式ドキュメント を参照。

2. ツールチェーンのインストール

.mise.toml で定義された Node.js / pnpm をインストールする。

shellrepo root
$ mise install $ mise trust

3. .env ファイルの作成

shellrepo root
$ cp docs/env-templates/env.development.template .env

アプリ側で dotenv を import していないため、.mise.toml[env] _.file = ".env" による mise activate 時の自動ロードが必須。

注意

mise の dotenv パーサは値内の空白を許容しない。空白を含む値はダブルクォートで囲む(例: VITE_APP_TITLE="SalonBook (Dev)")。

4. 依存関係のインストール

shellrepo root
$ pnpm install

5. Docker で MySQL を起動

shellrepo root
$ docker compose up -d
項目
ホストlocalhost:3306
DB 名salon_booking_dev
root パスワードpassword

6. DB スキーマの適用

shellrepo root
$ pnpm db:push

7. 開発サーバーの起動

shellrepo root
$ pnpm dev

8. テストデータの投入

開発用のサンプルデータと各ロールのログインアカウントを投入する。

shellrepo root
$ mise run test-data

投入後のログイン情報(パスワードは全て passw0rd!):

ロール ログイン ID / メール
マスター管理者master@example.com
店舗管理者shop@example.com
店舗スタッフstaff@example.com
顧客customer@example.com
補足

店舗管理者・店舗スタッフのログインフォームは「ログイン ID」入力欄だが、上記のメールアドレスをそのまま入力する(login_id カラムにメールアドレスを格納している)。

9. ログイン画面のパス

ルーティングは client/src/App.tsx で定義されている。

ロール パス 備考
マスター管理者 /master/login システム全体の管理者
店舗管理者 /shop/login 店舗オーナー向け
店舗スタッフ /staff-portal/login スタッフポータル
顧客 /reserve/:shopId/login :shopId は店舗ごとに動的に決まる
顧客ログインの :shopId について

テストデータ投入後の shopIdshops テーブル、または店舗管理者ダッシュボードで確認する。

10. 開発コマンド

コマンド 役割
pnpm dev開発サーバー起動(tsx watch)
pnpm buildクライアント + サーバービルド
pnpm start本番起動(NODE_ENV=production
pnpm testテスト実行(vitest)
pnpm check型チェック(tsc --noEmit
pnpm formatコードフォーマット(prettier)
pnpm db:pushDB マイグレーション実行