最終更新日: 2026年3月19日

テンプレート説明

Supabaseは、PostgreSQLをベースとした包括的なバックエンドサービスプラットフォームです。リアルタイムデータベース、認証、ストレージ、RESTful APIを統合的に提供し、開発者がフロントエンドに集中できる環境を実現します。Firebaseの代替として、オープンソースで完全なデータ主権を提供しながら、エンタープライズグレードのスケーラビリティを備えています。

本テンプレートは、Docker ComposeによるSupabaseのフルスタック環境を自動構築します。インストール完了後、管理スクリプトを使用してサービスを起動する必要があります。

メモ

本テンプレートは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
初期状態 サービス停止中(起動には管理スクリプトが必要)

その他

最小システム要件

  • 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データベース接続情報

Step 3: Dockerイメージの取得

以下のコマンドでDockerイメージを取得します。ネットワーク環境によっては数分かかる場合があります。

# /root/supabase-manage.sh setup

メモ

イメージの取得に失敗した場合は、同じコマンドを再実行してください。

Step 4: サービスの起動

以下のコマンドでSupabaseサービスを起動します。全サービスが起動するまで3〜10分程度かかります。

# /root/supabase-manage.sh start

Step 5: サービスの動作確認

Supabaseサービスの稼働状態を確認します:

# /root/supabase-manage.sh status

または、診断スクリプトを使用して包括的な状態確認を行います:

# /root/supabase-diagnose.sh

Step 6: Studioへのアクセス

Webブラウザで以下のURLにアクセスしてください:

http://[Step 2で確認したURL]

Basic認証のダイアログが表示されますので、supabase-info.txtに記載されているユーザー名とパスワードを入力してください。

Step 7: 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の証明書発行には、ドメインの所有権確認が必要です。

管理スクリプト一覧

以下の管理スクリプトが/rootディレクトリに用意されています:

スクリプト名 機能 使用例
supabase-manage.sh サービスの起動・停止・再起動・状態確認・ログ表示 # /root/supabase-manage.sh {setup|start|stop|restart|status|logs}
supabase-diagnose.sh システム状態の診断・確認 # /root/supabase-diagnose.sh
supabase-change-domain.sh ドメイン名の変更 # /root/supabase-change-domain.sh -d new-domain.com
supabase-https-setup.sh HTTPS/SSL証明書と独自ドメインの自動設定 # /root/supabase-https-setup.sh -e [email protected] -d your-domain.com

主要な操作コマンド

操作 コマンド 説明
イメージ取得 # /root/supabase-manage.sh setup 初回起動前に必要なDockerイメージを取得
サービス起動 # /root/supabase-manage.sh start 全サービスを起動
サービス停止 # /root/supabase-manage.sh stop 全サービスを停止
サービス再起動 # /root/supabase-manage.sh restart 全サービスを再起動
状態確認 # /root/supabase-manage.sh status サービスの稼働状況を確認
ログ確認 # /root/supabase-manage.sh logs 全サービスのログをリアルタイム表示
特定サービスのログ # /root/supabase-manage.sh logs [サービス名] 指定サービスのログを表示

メモ

設定ファイル(/opt/supabase/.env)を変更した場合は、変更を反映させるために必ずサービスの再起動が必要です。

セキュリティグループ設定

以下のポートを開放する必要があります:

ポート番号 プロトコル 用途 必須/オプション
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を閉じることでセキュリティが向上します。

トラブルシューティング

サービスが起動しない場合

  1. システムリソースを確認:# free -h および # df -h
  2. Dockerサービスの状態確認:# systemctl status docker
  3. 個別サービスのログを確認:# /root/supabase-manage.sh logs [サービス名]
  4. メモリ不足の場合は、VPSプランのアップグレードを検討

Studio管理画面にアクセスできない場合

  1. ファイアウォール設定を確認:# ufw status
  2. Kongサービスの状態確認:# /root/supabase-manage.sh logs kong
  3. ポート8000が他のプロセスで使用されていないか確認:# netstat -tlnp | grep 8000

データベース接続エラーが発生する場合

  1. PostgreSQLコンテナの状態確認:# /root/supabase-manage.sh status
  2. データベースログの確認:# /root/supabase-manage.sh logs db
  3. 環境変数ファイルの設定確認:# 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 コミュニティサポート・質問フォーラム