Supabase インストール · 2 min read · Sep 13, 2025
Ubuntu 24.04にDockerを使用してSupabase(Firebaseの代替)をインストールする方法

Supabaseは、世界で最も信頼されているリレーショナルデータベースであるPostgreSQLデータベースの上に構築されたオープンソースのFirebaseの代替です。これにより、開発者は完全なWeb、モバイル、AIアプリケーションを構築できます。SupabaseはPostgreSQLデータベース、認証、API、ストレージ、リアルタイムサブスクリプション、ベクトル埋め込みを提供します。シンプルなセットアップとユーザーインターフェースにより、開発者はSupabaseの上に迅速にアプリケーションを構築できます。
このチュートリアルでは、Ubuntu 24.04サーバーにSupabaseをインストールする方法を学びます。Dockerを使用してコンテナとしてSupabaseを実行し、パスワード認証とJWTトークンでSupabaseを保護します。最後に、SupabaseのリバースプロキシとしてNginxを設定する方法も学びます。
前提条件
このガイドを始める前に、次のものを用意してください:
- Ubuntu 24.04サーバー
- 管理者権限を持つ非ルートユーザー
- サーバーIPアドレスにポイントされたドメイン名
Dockerエンジンのインストール
サーバーにSupabaseをデプロイするには、マシンにDockerエンジンをインストールする必要があります。Supabaseアプリケーションは、サーバー上でコンテナとして実行されます。
このセクションでは、公式のDockerリポジトリを通じてDockerエンジンをインストールします。
まず、以下のコマンドを実行してUbuntuパッケージインデックスを更新し、’ca-certificates‘、’curl‘、および’git‘などのパッケージをインストールします。
sudo apt update
sudo apt install -y ca-certificates curl git
次に、DockerエンジンリポジトリのGPGキーを追加するために、以下のコマンドを実行します。
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc以下のコマンドを実行して、Ubuntuサーバー用のDockerエンジンリポジトリを追加します。
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Docker GPGキーとリポジトリが追加されたので、以下の’apt‘コマンドを実行してパッケージインデックスを更新し、Dockerエンジンをインストールします。この時、Docker Composeとbuildxプラグインもインストールされます。
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-pluginインストールを確認するために’Y‘を入力します。

Dockerグループへのユーザー追加
このガイドでは、非ルートユーザーとしてSupabaseを実行するため、専用のユーザーが作成されていることを確認してください。その後、ユーザーを’docker’グループに追加する必要があります。これにより、ユーザーはコンテナを実行できるようになります。
以下のコマンドでユーザーを’docker‘グループに追加します。これにより、ユーザーはコンテナを実行および実行できるようになります。
sudo usermod -aG sudo username以下の’su‘コマンドでユーザーにログインします。
su - username最後に、以下の’docker‘コマンドを実行して、’hello-world‘コンテナを実行します。
docker run hello-worldすべてが正常に進行すれば、Dockerから’Hello World‘メッセージが表示されます。

Supabaseのダウンロードとインストール
Dockerをインストールしたので、次のステップはSupabaseをダウンロードし、コンテナとして実行することです。このセクションでは、Supabaseを立ち上げる方法を学び、その後、セキュリティを確保する方法を学びます。
以下の’git‘コマンドで’supabase‘ソースコードをダウンロードします。
git clone --depth 1 https://github.com/supabase/supabase‘supabase/docker’ディレクトリに移動し、’.env.example‘ファイルを’.env’にコピーします。このファイルは、Supabaseインストールの設定に使用されます。
cd supbase/docker
cp .env.example .env次に、以下の’docker compose‘コマンドを実行して、DockerリポジトリからSupabaseイメージをダウンロードします。これにより、Supabase用の複数のイメージがダウンロードされます。
docker compose pull以下にSupabase Dockerイメージのダウンロードプロセスが表示されます。

プロセスが完了したら、以下のコマンドを実行してSupabaseコンテナを起動します。’ -d‘オプションを使用すると、バックグラウンドでコンテナが実行されるため、Supabaseコンテナのログは表示されません。
docker compose up -d
最後に、以下の’docker compose‘コマンドを実行してSupabaseコンテナの状態を確認します。
docker compose ps以下の出力では、’supabase-auth‘、’supabase-kong‘、’supabase-rest‘、および’supabase-studio‘などのSupabaseコンテナが実行されていることがわかります。

Supabaseのセキュリティ
現在、Supabaseはシステム上で稼働していますが、適切なパスワードと認証がありません。したがって、今のところ、’.env’ファイル内の資格情報を変更することでSupabaseインストールを保護します。
始める前に、PostgreSQLサーバーとSupabaseダッシュボードのパスワードを生成し、次にJWTシークレットとトークンを生成します。
以下のコマンドを2回実行して、SupabaseダッシュボードとPostgreSQLサーバーの安全なパスワードを生成します。
openssl rand -hex 16
次に、Supabaseのウェブサイトに移動して、Supabase用の2つのJWTトークンを生成します。以下の内容をメモしてください:
- JWTシークレット
- ANON_KEYおよびSERVICE_KEYの両方のキー
- 両方の生成されたJWTトークン

Supabase用のパスワードとトークンを生成したので、’.env’ファイルを編集してそれらを適用しましょう。
‘.env‘ファイルを’vim‘エディタで開きます。
vim .env生成したOpenSSLパスワードを’POSTGRES_PASSWORD‘オプションに貼り付けます。
POSTGRES_PASSWORD=f489d6f61514eb90fbf57fb574c3d367JWTシークレットキーを’JWT_SECRET‘オプションに入力します。
JWT_SECRET=PUaiJLm1PKAebJJRIdXylVJrfgGbRWdWvzN0EUgh‘ANON_KEY‘の値を、’anon‘ユーザー用に生成されたJWTトークンに置き換えます。
ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJyb2xlIjogImFub24iLAogICJpc3MiOiAic3VwYWJhc2UiLAogICJpYXQiOiAxNzM2MzU1NjAwLAogICJleHAiOiAxODk0MTIyMDAwCn0.f8_wST3WX1bmvsHttRokJPCz7-rpyjU8HMNnYH7kSd4‘SERVICE_ROLE_KEY‘の値を、’service_role‘ユーザー用に生成されたJWTトークンに置き換えます。
SERVICE_ROLE_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.ewogICJyb2xlIjogInNlcnZpY2Vfcm9sZSIsCiAgImlzcyI6ICJzdXBhYmFzZSIsCiAgImlhdCI6IDE3MzYzNTU2MDAsCiAgImV4cCI6IDE4OTQxMjIwMDAKfQ.DOo1lqH76AR_jCx0N9QDZBEdrQ8T_JBQqc7CagD1mWMパブリックサーバーにデプロイする場合は、SMTPサーバーの詳細を入力します。
Email auth
ENABLE_EMAIL_SIGNUP=true
ENABLE_EMAIL_AUTOCONFIRM=false
[email protected]
SMTP_HOST=smtp.server.address
SMTP_PORT=2500
SMTP_USER=username
SMTP_PASS=password
SMTP_SENDER_NAME=sender_name
ENABLE_ANONYMOUS_USERS=false‘DASHBOARD_USERNAME’と’DASHBOARD_PASSWORD’オプションにユーザー名とパスワードを入力します。このユーザーはSupabaseにログインするために使用されます。
DASHBOARD_USERNAME=supabase
DASHBOARD_PASSWORD=91521851a4e1375145959eecddfaff45ドメイン名を’SITE_URL‘、’API_EXTERNAL_URL‘、および’SUPABASE_PUBLIC_URL‘オプションに入力します。この例では、ドメイン’https://supabase.howtoforge.local’を使用します。
SITE_URL=https://supabase.howtoforge.local
API_EXTERNAL_URL=https://supabase.howtoforge.local
SUPABASE_PUBLIC_URL=https://supabase.howtoforge.localファイルを保存し、編集を終了します。
次に、以下の’docker‘コマンドを実行してSupabaseコンテナを停止し、削除します。
docker compose downその後、以下のコマンドでSupabaseのコンテナを再作成します。
docker compose up -dすべてが正常に動作していることを確認するために、以下のコマンドを使用して各コンテナサービスを確認します。
docker compose ps以下に、Supabaseの各コンテナが実行されていることがわかります。

SupabaseのリバースプロキシとしてNginxを設定する
Supabaseが保護されたので、Nginxウェブサーバーをインストールし、Supabaseのリバースプロキシとして構成しましょう。ドメイン名が準備され、サーバーIPアドレスにポイントされていることを確認してください。
以下の’apt‘コマンドでNginxをインストールします。
sudo apt install nginx -y次に、’/etc/nginx/sites-available/supabase‘という新しいNginxサーバーブロック構成を’vim‘エディタで作成します。
sudo vim /etc/nginx/sites-available/supabase以下の構成を貼り付け、’server_name‘オプション内のドメイン名を変更してください。
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
upstream kong {
server localhost:8000;
}
server {
listen 80;
server_name supabase.howtoforge.local;
# REST
location ~ ^/rest/v1/(.*)$ {
proxy_set_header Host $host;
proxy_pass http://kong;
proxy_redirect off;
}
# AUTH
location ~ ^/auth/v1/(.*)$ {
proxy_set_header Host $host;
proxy_pass http://kong;
proxy_redirect off;
}
# REALTIME
location ~ ^/realtime/v1/(.*)$ {
proxy_redirect off;
proxy_pass http://kong;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
}
# STUDIO
location / {
proxy_set_header Host $host;
proxy_pass http://kong;
proxy_redirect off;
proxy_set_header Upgrade $http_upgrade;
}
}ファイルを保存し、編集を終了します。
次に、以下のコマンドを実行してSupabaseサーバーブロックを有効にし、Nginxの構文を確認します。エラーがなければ、’syntax is ok - test is successful‘という出力が得られます。
sudo ln -s /etc/nginx/sites-available/supabase /etc/nginx/sites-enabled/
sudo nginx -t
次に、以下の’systemctl‘コマンドを実行してNginxウェブサーバーを再起動し、変更を適用します。これにより、SupabaseインストールがNginxリバースプロキシの下で実行されるはずです。
sudo systemctl restart nginx最後に、以下の’systemctl‘コマンドを実行してNginxサービスを確認し、サービスが実行されていることを確認します。
sudo systemctl status nginxすべてが正常に進行すれば、以下のような出力が表示されます。

HTTPSでSupabaseを保護する
Nginxがリバースプロキシとして稼働しているので、SSL証明書を生成し、HTTPSを有効にしてSupabaseインストールを保護しましょう。
開発モードの場合は、この部分をスキップしてSupabaseをHTTPSのままにできます。生産環境では、Supabaseサーバーを保護するためにHTTPSを実装する必要があります。
以下の’apt‘コマンドでCertbotとNginx Certbotプラグインをインストールします。インストールを確認するために’Y’を入力します。
sudo apt install certbot python3-certbot-nginxインストールが完了したら、以下の’certbot’コマンドを実行して、ドメイン名用のSSL証明書を生成します。コマンド内のドメイン名とメールアドレスを変更してください。
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d supabase.howtoforge.local完了すると、SSL証明書は’/etc/letsencrypt/live/domain.com‘ディレクトリに保存され、SupabaseはNginx Certbotプラグインを通じて自動的にHTTPSで保護されます。
Supabase Studioにアクセスする
Supabaseにアクセスするには、ウェブブラウザを開き、https://supabase.howtoforge.localにアクセスします。インストールが成功していれば、基本的なパスワード認証が表示されます。
‘DASHBOARD_USERNAME‘と’DASHBOARD_PASSWORD‘オプション内にユーザー名とパスワードを入力し、’Login‘をクリックします。

成功すると、以下のSupabaseダッシュボードが表示されます。

結論
おめでとうございます!Dockerを介してUbuntu 24.04サーバーにSupabaseのインストールが完了しました。パスワード認証JWTトークンでSupabaseをデプロイし、保護し、Nginxをリバースプロキシとしてインストールおよび構成しました。最後に、CertbotとLetsencryptを通じてHTTPSでSupabaseを保護しました。ここから、新しいデータベースを作成し、Supabaseにデータを挿入し、REST APIを介して通信するためにSupabaseモジュールを使用して簡単なアプリケーションを作成することができます。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。