supabase

【完全無料】supabaseをローカルにダウンロードして無料で利用する方法

どうも、katです。

今回は、firebaseとよく比較される、RDBのBaaS(Backend as a Service)であるsupabaseを、ローカルにダウンロードし、完全無料で利用する方法について解説していきます。

今回の記事の方法であれば、supabaseのアカウント登録や、プランへの加入なども不要で、無料で利用できますので、ぜひ試してみてください!

supabaseとは?

supabaseとは、冒頭でもお伝えしましたが、RDB(postgresql)が使えるBaaSになります。

強みとしては、リアルタイム処理を伴うシステムにおいて、supabaseを使うことで、データが更新されたらすぐに画面描画をするなどが簡単にできるとされています。

よく比較されているものとしては、googleが提供しているfirebaseというサービスがあります。

firebaseも、機能としては似たようなものになりますが、大きく違うところとしては、firebaseがnoSQL(非リレーショナルDB)なのに対し、supabaseはRDB(リレーショナルDB)であるという点です。

大規模なシステムになってくると、テーブルのJOINなどが簡単にできるリレーショナルDBの方が扱いやすいということもあるかと思いますので、今回はRDBのsupabaseを使ってみることにします。

ダウンロード版とは?

supabaseの公式サイトに行くと、基本的にはアカウント登録し、プラン選択して利用するという流れで紹介されており、supabaseを紹介するブログなどでも、基本的には機能制限付きの無料プランや有料プランでの利用方法が書かれています。

しかしその他の利用方法として、ローカルにダウンロードして使用するという方法もあります。

この方法を使うことで、アカウント登録も不要で、完全無料で使い続けることが可能です。

もちろんBaaSとして、有料もしくは機能制限付きの無料プランを使うことで、管理が楽だったり、自前のDBが不要になるなど、メリットもあると思いますので、どちらで利用するかは用途によって判断するのが良いかと思います。

今回は、supabaseをローカルにダウンロードして完全無料で使う方法について解説していきますが、とても簡単にできますので、ぜひやってみてください!

ダウンロード版supabase利用手順

npmインストール

サーバーにnpmがまだ入っていない場合はインストールします。(root以外のユーザーで実施する場合は、適宜「sudo」をつけてコマンドを実行してください)

CentOSの場合

curl -sL https://rpm.nodesource.com/setup_10.x | sudo bash -
yum install nodejs

Ubuntuの場合

apt install npm

supabaseインストール

以下のコマンドでsupabaseをインストールします

npm install -g supabase

dockerインストール

サーバーにdockerをインストールします(既に入っている場合はスキップ)

インストール方法は公式サイトに詳しく書かれているため、そちらを参照してください

CentOSの場合

【簡単】CentOSにdockerをインストールする方法どうも、katです。 今回は、CentOSにdockerをインストールする方法について書いていこうと思います。 インストール手順 ...

Ubuntuの場合

【簡単】Ubuntuにdockerをインストールする方法どうも、katです。 今回は、Ubuntuにdockerをインストールする方法について書いていこうと思います。 インストール手順 ...

docker composeインストール

以下のコマンドで、docker composeをインストールします(既に入っている場合はスキップしてください)

sudo curl -L https://github.com/docker/compose/releases/download/v2.6.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

インストールできたかを、以下のコマンドで確認できます

docker-compose --version

supabase設定

まず、supabase用のディレクトリを任意の名前で作成します

mkdir /var/www/supabase

次に、作成したディレクトリの中で、supabaseの初期化を行います

cd /var/www/supabase
supabase init

色々と聞かれますが、特に問題なければ全てEnterを押していきます。

さらに、サーバーのホスト名がlocalhostではない場合、作成したディレクトリ内で以下の設定を行います。

まずは以下のコマンドで設定ファイルを開く

vi .supabase/docker/docker-compose.yml

以下の2箇所について、localhostの部分をサーバーのIPアドレスに書き換える

API_EXTERNAL_URL: http://localhost:8000
GOTRUE_SITE_URL: http://localhost:8000

例)

API_EXTERNAL_URL: http://192.168.33.10:8000
GOTRUE_SITE_URL: http://192.168.33.10:8000

supabase起動

最後に、以下のコマンドでsupabaseを起動します

supabase start

接続確認

特に設定を変更していなければ、各PostgreSQLクライアント(DBeaverなど)で、以下の内容で接続ができます。

  • Host: docker-compose.ymlにも記載したIPアドレス(例:192.168.33.10)
  • Database: postgres
  • ユーザー名: postgres
  • パスワード: postgres

接続ができ、authなどのスキーマが出来ていれば、構築完了になります。

後は、各種サービスやアプリから、supabaseに接続して利用します。

また、supabaseを他のサービスやアプリから利用する際には、ANONKEYや

SERVICE_KEYが必要な場合があるかと思いますが、その場合は
.supabase/docker/docker-compose.yml

に両方とも記載がありますので、そちらを使用することで接続ができます。

最後に

今回は、supabaseをローカルにダウンロードして使う方法について見ていきました。

簡単かつ、無料(利用制限なし)で利用できるので、開発コストを抑えたい場合には良いかと思います!

supabaseはリアルタイムなサイトやアプリの構築に向いているため、私も今後、supabaseを使ったリアルタイムサイトを作って見たいと思います。

以上、「supabaseをローカルにダウンロードして無料で利用する方法」でした〜

参考

https://kohsuk.tech/2021/8/24/

https://supabase.com/docs/guides/with-nextjs

ABOUT ME
kat
プログラマー歴7年、2歳の子供を持つパパです。 興味のあることはプログラミングや今後のIT技術などです。 趣味でオンラインカードゲームのサイトを運営しております。 プログラミングを通して社会に貢献していきたいです。