環境構築
必要なもの
開発を始める前に以下をインストールしておいてください。
| ツール | バージョン | 用途 |
|---|---|---|
| Git | 最新 | ソースコード管理 |
| Docker & Docker Compose | 最新 | API・DBの起動 |
| Node.js | 22.x | Web・SPNフロントエンド |
| Python | 3.11 | API開発(直接触る場合) |
リポジトリのクローン
git clone --recurse-submodules https://github.com/chibafes-dev/happa.git
cd happa
:::caution サブモジュールを忘れずに
--recurse-submodules が必要です。忘れた場合は git submodule update --init --recursive で補完できます。
:::
API(バックエンド)の起動
1. 環境変数ファイルを作成する
cd api
cp .env.sample .env
.env を開き、最低限以下を設定してください。ローカルでDockerを使う場合は DATABASE_URL だけ設定すれば動き始めます。
| 変数 | ローカル開発での値 |
|---|---|
DATABASE_URL | mysql+aiomysql://happa_user:happa_password@localhost:3306/happa |
CORS_ORIGINS | http://localhost:3000,http://localhost:3001 |
NODE_ENV | development |
Auth0・R2・Resendなど外部サービスの設定は、対応する機能を開発する際に追加してください。
2. DockerでAPIとDBを起動する
# ローカルDB(MySQL)込みで起動
docker compose -f docker-compose.local.yml up -d
起動確認:
curl http://localhost:8000/health
# -> {"status":"ok"} が返ればOK
Swagger UI(APIドキュメント)は http://localhost:8000/docs で確認できます。
Makefile コマンド一覧
api/ ディレクトリに Makefile があります。
make dev # ホットリロードで開発サーバー起動
make test # テスト実行
make lint # flake8 でコードチェック
make format # Black でフォーマット
make docker-up # Dockerコンテナ起動
make docker-down # コンテナ停止
データベースマイグレーション
初回起動時と、スキーマが変更されたときに実行します。
# コンテナ内で実行
docker compose exec api alembic upgrade head
# またはMakefileで
make migrate
Web(フロントエンド)の起動
1. 環境変数ファイルを作成する
cd web
cp .env.local.example .env.local
最低限設定が必要な変数:
| 変数 | ローカル開発での値 |
|---|---|
FASTAPI_API_URL | http://localhost:8000/api |
NEXT_PUBLIC_PROJECT_PREFIX | tarf(開発用プロジェクトのprefix) |
NODE_ENV | development |
Auth0の設定(AUTH0_*)はログイン機能を使う場合に必要です。
2. 依存関係をインストールして起動する
npm install
npm run dev
http://localhost:3000 で起動します。
コマンド一覧
npm run dev # 開発サーバー起動
npm run build # Cloudflare Pages向けビルド
npm run lint # ESLint
npm run typecheck # TypeScriptの型チェック
npm run generate:api # OpenAPIスキーマからAPIクライアントを自動生成
:::tip APIクライアントの再生成
バックエンドのAPIが変わったら npm run generate:api を実行して型を更新してください。
:::
SPN(協賛企業管理)の起動
cd spn
cp .env.sample .env
npm install
npm run dev # http://localhost:3001 で起動
VS Code Dev Container を使う場合
.devcontainer/devcontainer.json が設定済みです。VS CodeでRemote Containersを使うとPython 3.11の環境が自動で立ち上がります。
- VS Code に「Dev Containers」拡張をインストール
Cmd+Shift+P→「Dev Containers: Reopen in Container」を選択- コンテナ起動後、
api/requirements.txtの依存関係が自動インストールされます
全体の起動確認チェックリスト
-
http://localhost:8000/health→{"status":"ok"} -
http://localhost:8000/docs→ Swagger UI が表示される -
http://localhost:3000→ Webフロントエンドが表示される -
http://localhost:3001→ SPNフロントエンドが表示される