Next.js + self-hosted Supabase の開発環境
- Next.js 16 (App Router)
- Supabase (self-hosted)
- Docker Compose
- mise (タスクランナー/バージョン管理)
- pnpm
- Biome (Linter/Formatter)
- Docker / Docker Compose
- mise
miseを導入していない場合は、以下のコマンドでインストールしてください。
curl https://mise.run | sh詳細は公式ドキュメントを参照: https://mise.jdx.dev/installing-mise.html
miseが自動的にNode.jsとpnpmのバージョンを管理します。
mise trust
mise install
pnpm installSupabaseの環境変数ファイル (supabase/.env) が必要です。
NUTFes/settings から取得してください。
mise run upこのコマンドでSupabaseとNext.jsの開発環境がDockerで起動します。 http://localhost:3000 でアプリケーションにアクセスできます。
開発環境では src/ と public/ がボリュームマウントされているため、
コードの変更は自動的にホットリロードされます。
mise run down通常の開発では mise run up だけで良いですが、以下の場合は再ビルドが必要です。
mise run 07-docker:buildpackage.jsonの依存関係を変更した場合 (パッケージの追加/削除/更新)Dockerfileを変更した場合next.config.tsを変更した場合- その他ビルド時に反映される設定ファイルを変更した場合
mise tasks で一覧を確認できます。mise runで選択したタスクを実行できます。
| タスク | エイリアス | 説明 |
|---|---|---|
01-up |
up |
開発環境起動 (Supabase + Next.js) |
02-down |
down |
全環境停止 (Dev/Prod/Supabase) |
03-lint |
lint |
Lintチェック |
04-lint:fix |
lint:fix |
Lint修正 |
05-format:check |
format:check |
フォーマット確認 |
06-format |
format |
フォーマット適用 |
07-docker:build |
docker:build |
開発環境をビルドして起動 |
08-prod:up |
prod:up |
本番環境を起動 |
09-prod:build |
prod:build |
本番環境をビルドして起動 |
10-prod:down |
prod:down |
本番環境を停止 (Supabase含む) |
11-supabase:reset |
supabase:reset |
Supabase DBリセット |
12-clean |
clean |
ビルド成果物を削除 |
13-clean:docker |
clean:docker |
Dockerリソースを削除 |
.
├── src/ # アプリケーションソースコード
├── public/ # 静的ファイル
├── supabase/ # Supabase self-hosted 設定
├── compose.dev.yml # 開発用 Docker Compose
├── compose.prod.yml # 本番用 Docker Compose
├── dev.Dockerfile # 開発用 Dockerfile
├── prod.Dockerfile # 本番用 Dockerfile
└── .mise.toml # mise 設定 (タスク/ツールバージョン)