最終更新日: 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管理画面にログイン後、以下の手順で初期プロジェクトを設定します:

  1. 左サイドバーから「Table Editor」を選択
  2. 「New table」をクリックしてテーブルを作成
  3. 「Authentication」タブで認証設定を確認
  4. 「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を閉じることでセキュリティが向上します。

トラブルシューティング

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

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

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

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

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

  1. PostgreSQLコンテナの状態確認:# cd /opt/supabase && docker compose ps db
  2. データベースログの確認:# cd /opt/supabase && docker compose 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 コミュニティサポート・質問フォーラム