Supabase(スパベース)とは
Supabaseは、オープンソースのFirebase代替として開発されたBaaS(Backend as a Service)プラットフォームです。
主な特徴
PostgreSQLベース
- 本格的なリレーショナルデータベースを採用
- SQLの豊富な機能を活用可能
- ACID準拠で高い信頼性
提供する機能
- リアルタイムデータベース
- 認証・承認システム
- RESTful API の自動生成
- ファイルストレージ
- Edge Functions(サーバーレス関数)
開発者体験
- 直感的なダッシュボード
- 自動生成されるAPI
- リアルタイム機能
- 豊富なクライアントライブラリ(JavaScript、Python、Dartなど)
Firebaseとの違い
Firebaseと比較すると、SupabaseはSQLデータベースを使用している点が大きな特徴です。これにより、複雑なクエリや既存のSQLスキルを活用できます。また、オープンソースなので自己ホスティングも可能です。
現在多くのWebアプリケーションやモバイルアプリの開発で採用されており、スタートアップから大企業まで幅広く利用されています。特にReact、Vue.js、Next.jsなどのモダンなフロントエンドフレームワークとの相性が良いことで知られています。
PC開発環境
CPU :core-i5
RAM :16GB
OS :Windows11
使用するもの
- VSCode
- Node.js
- docker Desktop
- Ubuntu
- Supabase CLI
- Gemini CLI(AI駆動開発をする場合のみ)
動作の流れ
Docker Desktopを起動。(常時起動)
↓
VSCodeを起動。
↓
WSLターミナルを開く。(Ubuntu環境に接続)
↓supabase start コマンドを入力
↓
Node.js がSupabase CLIプログラムを実行
↓
Supabase CLIがDockerに指示を送る
↓
DockerがSupabaseコンテナ群を起動(PostgreSQL、認証サーバーなど)
↓
開発者がアプリケーションコードでSupabaseに接続
導入方法
1.Supabaseをダウンロード
最新版のSupabaseをGithabからダウンロードする。
ここから直接ダウンロードできます。
2.ファイルの配置
ダウンロードした「supabase_[バージョン]_linux_amd64.deb」を
開発予定のディレクトリに置く。
3.debファイルの解凍
↓WSLターミナルを開き、.debファイルを解凍する。
sudo dpkg -i supabase_[バージョン]_linux_amd64.deb
↓以下が表示されるので、パスワードを入力した後にEnterキーを押す。
[sudo] password for [ユーザー名]:
↓以下が表示されると、解凍完了。
Selecting previously unselected package supabase.
(Reading database ... 46675 files and directories currently installed.)
Preparing to unpack supabase_2.45.5_linux_amd64.deb ...
Unpacking supabase (2.45.5) ...
Setting up supabase (2.45.5) ...
3.バージョンの確認
↓以下コマンドで、バージョンを確認。
supabase -v
↓以下のように表示されれば、OK
2.45.5
4.Supabaseの初期化
↓以下コマンドで、Supabaseを初期化。
supabase init
↓以下が表示されたら、[N]+[Enter]。
下記は「Denoを使用するためにVSCodeの設定をする?」と聞かれています。
Generate VS Code settings for Deno? [y/N]
↓以下が表示されたら、[N]+[Enter]。
下記は「Denoを使用するためにIntelliJ IDEAの設定をする?」と聞かれています。
Generate IntelliJ Settings for Deno? [y/N]
↓以下が表示されたら、Supabaseの初期化が完了。
Finished supabase init.
4.Supabaseを起動
ここの工程で、Supabaseに関するイメージやらがインストールされるため、
PCスペックによりますが、5分~1時間程度構築に時間がかかります。
↓以下コマンドで、Supabaseを起動。
supabase start
↓以下が表示されたら、Supabaseが起動。
Starting database from backup…
17.6.1.005: Pulling from supabase/postgres
.
.
.
Started supabase local development setup.
0.1:54322/postgres
0.1:54322/postgres
Studio URL: http://127.0.0.1:54323
Mailpit URL: http://127.0.0.1:54324
Publishable key: sb_publishable_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Secret key: sb_secret_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
S3 Access Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
S3 Secret Key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
S3 Region: local
ローカル開発環境の各サービス情報
API関連情報
API URL
- SupabaseのREST APIエンドポイント
- データベースの操作(CRUD)やRPC(関数呼び出し)に使用
- 通常は
http://localhost:54321
GraphQL URL
- GraphQL APIエンドポイント
- GraphQLクエリでデータを取得する際に使用
- REST APIの代替として利用可能
ストレージ
S3 Storage URL
- ファイルストレージ(画像、動画等)のエンドポイント
- ファイルのアップロード・ダウンロードに使用
- 通常は
http://localhost:54321/storage/v1
データベース
Database URL
- PostgreSQLデータベースへの直接接続URL
- データベースクライアント(psql、pgAdmin等)での接続に使用
- 形式:
postgresql://postgres:postgres@localhost:54322/postgres
管理画面
Studio URL
- Supabase管理ダッシュボードのURL
- テーブル管理、SQL実行、認証設定等をブラウザで操作
- 通常は
http://localhost:54323
Mailpit URL
- 開発用メールキャッチャーのURL
- 認証メールやパスワードリセットメール等をテスト確認
- 通常は
http://localhost:54324
認証キー
Publishable key (anon key)
- クライアントサイドで使用する公開キー
- フロントエンドアプリケーションの初期化に使用
- Row Level Security (RLS) の権限で制限される
Secret key (service_role key)
- サーバーサイドで使用する秘密キー
- 管理者権限でのデータベース操作が可能
- セキュリティ上、クライアントサイドでは絶対に使用禁止
S3互換ストレージの認証情報
S3 Access Key / S3 Secret Key
- S3互換APIでストレージにアクセスする際の認証情報
- AWS SDKやS3互換ツールでの直接操作に使用
S3 Region
- ストレージサービスのリージョン設定
- ローカル環境では通常
local
これで、SupabaseCLIの導入が完了です。
SupabaseCLIのよく使うコマンド一覧はこちらから。


コメント