Skip to main content

専用サーバー:LinuxでSupabaseをセットアップ

このガイドは、以下の製品を使用して作成されました:

(詳細はプロバイダーごとの製品によって異なる場合がありますが、基本的な概念は同じです)

はじめに

Supabaseは、フル機能のPostgresデータベースに加え、認証、即時API、リアルタイム、ストレージを提供するオープンソースのPostgres開発プラットフォームで、Firebaseのオープンソース代替として注目されています。

img

このサービスを自分でホスティングしようと考えていますか?セットアップと設定のすべてのステップを、注意すべきポイントとともに丁寧に解説します。

前提条件

Supabaseをインストールする前に、スムーズな導入と最適なパフォーマンスを保証するために、ホスティング環境が以下の要件を満たしていることを確認してください。

ハードウェア最低要件ZAP-Hosting推奨スペック
CPU1 CPUコア4 CPUコア
RAM4 GB8 GB
ディスク容量25 GB25 GB

ソフトウェアは必要な依存関係がすべてインストールされていること、かつサポートされているOS上で動作していることが必要です。インストールを進める前に、以下の要件を満たしているか必ず確認してください:

依存関係: Git, Docker (Engine と Compose)

OS: Docker 2をサポートする最新のUbuntuまたはDebian

Supabaseのインストール時に互換性の問題が起きないよう、依存関係がすべてインストールされていることと正しいOSバージョンを使用していることを必ず確認しましょう。

準備

Supabaseのセットアップ前に、システムの準備が必要です。これにはOSの最新バージョンへのアップデートと必要な依存関係のインストールが含まれます。これらの準備は安定した環境を確保し、インストール中やインストール後の問題を防ぐのに役立ちます。

システムのアップデート

最新のソフトウェアとセキュリティ改善を適用するため、まずはシステムのアップデートを行いましょう。以下のコマンドを実行してください:

sudo apt update && sudo apt upgrade -y

これにより、インストールを進める前に最新のセキュリティパッチとソフトウェアバージョンが適用されます。

依存関係のインストール

アップデートが完了したら、依存関係のインストールに進みます。

Git

SupabaseのデータはGitHubからダウンロードされるため、まずGitをインストールする必要があります。以下のコマンドを実行してください:

sudo apt install git-all

Docker

SupabaseはDockerコンテナを使ってマシン上にデプロイ・実行されます。Dockerをインストールするために、以下のコマンドを実行してください:

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

Dockerのインストール手順や使い方の詳しい解説は、当社のDockerガイドでご覧いただけます。

インストール

すべての要件を満たし、準備が整ったらSupabaseのインストールに進みましょう。

Supabaseリポジトリを取得し、専用のプロジェクトディレクトリを作成、Docker関連のファイルとサンプル環境ファイルをコピーします。

git clone --depth 1 https://github.com/supabase/supabase
mkdir supabase-project

cp -rf supabase/docker/* supabase-project
cp supabase/docker/.env.example supabase-project/.env

プロジェクトディレクトリに移動し、最新のコンテナイメージをプルして、スタックをデタッチモードで起動します。

cd supabase-project
docker compose pull
docker compose up -d

img

これで http://<your-ip>:8000 からSupabase Studioにアクセス可能です。ユーザー名とパスワードの入力を求められます。デフォルトの認証情報は以下の通りです:

  • ユーザー名: supabase
  • パスワード: this_password_is_insecure_and_should_be_updated

img

デフォルト認証情報について

現在、アプリはデフォルトの認証情報で稼働しています。以下の手順でできるだけ早くサービスをセキュアにしてください。

設定

デフォルトやサンプルの値での運用は絶対に避けてください。すべてのプレースホルダーを強力でユニークなシークレットに置き換え、セキュリティ要件に合わせて設定を見直し、変更を反映するためにすべてのサービスを再起動しましょう。

サービスを公開する前に安全なAPIキーを生成してください。まずは40文字のJWTシークレットを選びます。提供されている値を使うか、自分で作成してください。このシークレットは安全な場所にローカル保存し、共有やバージョン管理へのコミットは絶対に避けてください。シークレットを使ってJWTを生成し、Supabaseドキュメントのフォーム(https://supabase.com/docs/guides/self-hosting/docker#generate-api-keys)を参考にanonキーとservice APIキーを導出します。

フォームは2回実行して両方のキーを生成してください。./docker/.envに以下を更新します:

  • ANON_KEY: anonキー
  • SERVICE_ROLE_KEY: serviceキー

./docker/.env内の必須シークレットも更新してください。これらは動作に必須です:

  • POSTGRES_PASSWORD: postgresロールのパスワード
  • JWT_SECRET: PostgRESTとGoTrueで使用
  • SITE_URL: サイトのベースURL
  • SMTP_*: メールサーバーの認証情報
  • POOLER_TENANT_ID: Supavisorプーラーで使うテナントID

本番運用前にダッシュボードの認証情報も新しいものに変更してください。./docker/.envを編集:

  • DASHBOARD_USERNAME: ダッシュボードユーザー名
  • DASHBOARD_PASSWORD: ダッシュボードパスワード

複数のダッシュボードユーザーを設定したい場合は、./docker/volumes/api/kong.ymlに以下のように記述します:

basicauth_credentials:
- consumer: DASHBOARD
username: user_one
password: password_one
- consumer: DASHBOARD
username: user_two
password: password_two

localhost以外からダッシュボードの全機能を使いたい場合は、./docker/.envSUPABASE_PUBLIC_URLにアクセスに使うURLまたはIPを設定してください。

設定変更を反映するにはスタックを再起動します:

docker compose down
docker compose up -d

まとめと追加リソース

おめでとうございます!これで専用サーバーにSupabaseを無事インストール・設定できました。サーバー設定の参考になる以下のリソースもぜひチェックしてみてください。

ここにない具体的な質問があれば、いつでもお気軽に当社サポートチームまでお問い合わせください。毎日対応していますので安心してどうぞ!🙂