最終更新日: 2025年10月24日
テンプレート説明
Supabaseは、PostgreSQLをベースとした包括的なバックエンドサービスプラットフォームです。リアルタイムデータベース、認証、ストレージ、RESTful APIを統合的に提供し、開発者がフロントエンドに集中できる環境を実現します。Firebaseの代替として、オープンソースで完全なデータ主権を提供しながら、エンタープライズグレードのスケーラビリティを備えています。
本テンプレートは、Docker ComposeによるSupabaseのフルスタック環境を自動構築し、インストール完了後に全サービスが自動起動します。管理画面はBasic認証で保護され、安全な初期状態を提供します。
メモ
本テンプレートはPooler機能(Supavisor)を含まない構成となっています。接続プーリングが必要な高負荷環境では、別途Supavisorの設定を検討してください。通常の開発・中小規模運用では、本構成で十分なパフォーマンスを発揮します。
スタートアップスクリプトのテンプレートを利用してサーバー作成を行う手順はご利用ガイドを参照してください。
仕様
対応OSイメージ
Ubuntu 24.04 LTS
主要ソフトウェア
| ソフトウェア名 | バージョン | ライセンス | 用途 |
|---|---|---|---|
| Supabase | latest | Apache 2.0 | 統合バックエンドプラットフォーム |
| PostgreSQL | latest | PostgreSQL License | メインデータベース |
| PostgREST | latest | MIT | RESTful API自動生成 |
| GoTrue | latest | MIT | JWT認証サービス |
| Kong | latest | Apache 2.0 | APIゲートウェイ |
| Realtime | latest | Apache 2.0 | WebSocketリアルタイム通信 |
| Storage API | latest | Apache 2.0 | ファイルストレージサービス |
| pg_meta | latest | Apache 2.0 | データベースメタデータAPI |
| Studio | latest | Apache 2.0 | 管理ダッシュボード |
| Docker | latest | Apache 2.0 | コンテナランタイム |
| Docker Compose | latest | Apache 2.0 | マルチコンテナオーケストレーション |
| Nginx | latest | BSD-2-Clause | リバースプロキシ(HTTPS設定時) |
| Certbot | latest | Apache 2.0 | SSL証明書管理(HTTPS設定時) |
| Let’s Encrypt | – | MPL 2.0 | SSL証明書発行機関 |
スタートアップスクリプト情報
| 項目 | 説明 |
|---|---|
| アプリケーション利用ポート | 8000/tcp (HTTP), 443/tcp (HTTPS設定後) |
| データベースポート | 5432/tcp (PostgreSQL) |
| インストールディレクトリ | /opt/supabase |
| 管理スクリプト | /root/supabase-*.sh |
| 設定ファイル | /opt/supabase/.env |
| 認証情報ファイル | /root/supabase-info.txt |
| 初期状態 | 全サービス自動起動(Basic認証で保護) |
その他
最小システム要件
- CPU: 2コア以上
- メモリ: 最小4GB、推奨8GB以上
- ディスク容量: 20GB以上の空き容量
- ネットワーク: パブリックIPアドレス
メモ
Supabaseは複数のマイクロサービスで構成されているため、小規模な開発環境でも4GB以上のメモリを推奨します。本番運用では8GB以上のメモリと、負荷に応じたCPUコア数の増強を検討してください。データベースサイズとトラフィック量に応じて、ディスク容量も適切に確保してください。
利用手順
メモ
スタートアップスクリプトにてアプリケーションのインストールが完了するまで数分かかります。
インストール完了後、rootディレクトリに「supabase-info.txt」というファイルが作成されますのでご確認ください。
ファイルが存在しない場合、作成されるまでしばらくお待ちください。
Step 0: セキュリティグループについて
ConoHa VPS(Ver.3.0)ではサーバー毎にIPアドレスまたはポートでトラフィックを制御するセキュリティグループ(仮想ファイアウォール)が設定されます。
本テンプレートをご利用の場合は、予め利用するポートの通信許可設定が必要です。
詳細はセキュリティグループを参照してください。
Step 1: VPSへの接続
ConoHa VPSのコントロールパネルからVPSの情報を確認し、SSH で接続します。
鍵認証でのSSH接続コマンド例
# ssh -i 秘密鍵ファイルのパス root@VPSのグローバルIPアドレス
メモ
インストール完了までには約10〜15分程度かかります。スタートアップスクリプトの実行状況は、SSH接続後に以下のコマンドで確認できます:
# tail -f /var/log/supabase-install.log
Step 2: インストール情報の確認
インストールが完了すると、認証情報が自動生成されます。以下のコマンドで確認してください:
# cat /root/supabase-info.txt
このファイルには以下の重要な情報が記載されています:
- Studio管理画面のURL
- 管理者ユーザー名とパスワード(Basic認証用)
- APIキー(Anon Key、Service Role Key)
- PostgreSQLデータベース接続情報
- 各APIエンドポイントのURL
Step 3: サービスの動作確認
Supabaseサービスの稼働状態を確認します:
# cd /opt/supabase
# docker compose ps
または、診断スクリプトを使用して包括的な状態確認を行います:
# /root/supabase-diagnose.sh
全てのコンテナが「Up」状態であることを確認してください。主要なサービスは以下の通りです:
- supabase-db(PostgreSQL)
- supabase-kong(APIゲートウェイ)
- supabase-auth(GoTrue認証サービス)
- supabase-rest(PostgREST)
- supabase-realtime(Realtimeサービス)
- supabase-storage(Storageサービス)
- supabase-studio(管理ダッシュボード)
- supabase-meta(pg_meta)
Step 4: Studioへのアクセス
Webブラウザで以下のURLにアクセスしてください:
http://[Step 2で確認したURL]
Basic認証のダイアログが表示されますので、supabase-info.txtに記載されているユーザー名とパスワードを入力してください。
Step 5: HTTPS設定(推奨)
本番環境では、HTTPS通信の設定を推奨します。Let’s Encryptを使用した自動SSL証明書設定スクリプトを提供しています。下記コマンドの「[email protected]」は自身のメールアドレスに置き換えてください。
# /root/supabase-https-setup.sh -e [email protected]
カスタムドメインを使用する場合は、-dオプションでドメイン名を指定してください。下記コマンドの「your-domain.com」は自身の独自ドメインに置き換えてください。
# /root/supabase-https-setup.sh -e [email protected] -d your-domain.com
HTTPS設定スクリプトは以下の作業を自動的に実行します:
- Nginxリバースプロキシのインストールと設定
- Let’s Encrypt SSL証明書の取得と設定
- HTTP(ポート80)からHTTPS(ポート443)へのリダイレクト設定
- 証明書の自動更新設定(12時間ごとにチェック)
- 環境変数の更新(HTTPからHTTPSへのURL変更)
- ファイアウォール設定の更新
重要
HTTPS設定を行う前に、使用するドメイン名のDNS Aレコードが、サーバーのIPアドレスを正しく指していることを確認してください。Let’s Encryptの証明書発行には、ドメインの所有権確認が必要です。
Step 6: 初期プロジェクトの作成
Studio管理画面にログイン後、以下の手順で初期プロジェクトを設定します:
- 左サイドバーから「Table Editor」を選択
- 「New table」をクリックしてテーブルを作成
- 「Authentication」タブで認証設定を確認
- 「Storage」タブでファイルストレージバケットを作成
管理スクリプト一覧
以下の管理スクリプトが/rootディレクトリに用意されています:
| スクリプト名 | 機能 | 使用例 |
|---|---|---|
| supabase-diagnose.sh | システム状態の診断・確認 | # /root/supabase-diagnose.sh |
| supabase-https-setup.sh | HTTPS/SSL証明書と独自ドメインの自動設定 | # /root/supabase-https-setup.sh -e [email protected] -d your-domain.com |
主要な手動操作コマンド
スタートアップスクリプトでは起動スクリプトを提供していないため、以下のDocker Composeコマンドを使用してサービスを管理してください:
| 操作 | コマンド | 説明 |
|---|---|---|
| サービス起動 | # cd /opt/supabase && docker compose up -d | 全サービスをバックグラウンドで起動 |
| サービス停止 | # cd /opt/supabase && docker compose down | 全サービスを停止 |
| サービス再起動 | # cd /opt/supabase && docker compose restart | 全サービスを再起動 |
| 状態確認 | # cd /opt/supabase && docker compose ps | サービスの稼働状況を確認 |
| ログ確認 | # cd /opt/supabase && docker compose logs -f | 全サービスのログをリアルタイム表示 |
| 特定サービスのログ | # cd /opt/supabase && docker compose logs -f [サービス名] | 指定サービスのログを表示 |
メモ
設定ファイル(/opt/supabase/.env)を変更した場合は、変更を反映させるために必ずサービスの再起動が必要です。また、Docker Composeコマンドは必ず/opt/supabaseディレクトリで実行してください。
セキュリティグループ設定
以下のポートを開放する必要があります:
| ポート番号 | プロトコル | 用途 | 必須/オプション |
|---|---|---|---|
| 22 | TCP | SSH | 任意 |
| 80 | TCP | HTTP(HTTPS設定時の証明書取得に必要) | 必須 |
| 443 | TCP | HTTPS | 推奨 |
| 8000 | TCP | Supabase Studio(HTTPS設定前のみ) | 必須(HTTPS設定前) |
| 5432 | TCP | PostgreSQL(外部接続が必要な場合のみ) | オプション |
セキュリティ重要
PostgreSQLポート(5432)を外部に開放する場合は、強力なパスワード設定とIP制限を必ず実施してください。本番環境では、データベースへの直接接続ではなく、Supabase APIを経由したアクセスを推奨します。HTTPS設定完了後は、ポート8000を閉じることでセキュリティが向上します。
トラブルシューティング
サービスが起動しない場合
- システムリソースを確認:
# free -hおよび# df -h - Dockerサービスの状態確認:
# systemctl status docker - 個別サービスのログを確認:
# cd /opt/supabase && docker compose logs [サービス名] - メモリ不足の場合は、VPSプランのアップグレードを検討
Studio管理画面にアクセスできない場合
- ファイアウォール設定を確認:
# ufw status - Kongサービスの状態確認:
# cd /opt/supabase && docker compose logs kong - ポート8000が他のプロセスで使用されていないか確認:
# netstat -tlnp | grep 8000
データベース接続エラーが発生する場合
- PostgreSQLコンテナの状態確認:
# cd /opt/supabase && docker compose ps db - データベースログの確認:
# cd /opt/supabase && docker compose logs db - 環境変数ファイルの設定確認:
# cat /opt/supabase/.env | grep POSTGRES
アプリケーションの具体的な利用方法につきましては、サービス開発元やサービス提供元の公式サイト、Wikiなどで最新情報をご確認ください。
外部リンク
| サイト名 | URL | 説明 |
|---|---|---|
| Supabase公式サイト | https://supabase.com | プロダクト情報・最新ニュース |
| Supabase公式ドキュメント | https://supabase.com/docs | 技術ドキュメント・チュートリアル |
| SupabaseのGitHubリポジトリ | https://github.com/supabase/supabase | ソースコード・イシュートラッカー |
| Supabase セルフホスティングガイド | https://supabase.com/docs/guides/self-hosting | セルフホスティングの詳細手順 |
| Supabase APIリファレンス | https://supabase.com/docs/reference | API仕様・クライアントライブラリ |
| Supabase Discordコミュニティ | https://discord.supabase.com | コミュニティサポート・質問フォーラム |