ローカルでSupabaseを起動して制限なしで無料で使う

superbase

今日は前回紹介したクラウドのバックエンドサービスSupabaseをローカルで実行させる方法を紹介します。このやり方ではローカルのPostgreSQLデータベースを使用して、ローカルで実行されているSupabaseのインスタンスを使えるのでお金にも管理にも制限がありません。 まずは前回の記事を読んでおきましょう。 では早速Supabaseのセットアップに移ります。 Supabase CLIのインストール npmを使ってSupabaseをインストールします。詳しくはGitHubのドキュメンテーションを参照してください。 https://github.com/supabase/cli 次に、supabasをインストールします。 Docokerをインストール SupabaseはDockerのコンテナを使ってDBやUIアプリのスタックを管理しています。 今回はデスクトップアプリをインストールしますが同じことがDockerCLIでもできます。 ではOSにあったものをインストールしてください。 Supabaseインスタンスのイニシャライズ では下記のコマンドでSupabaseをイニシャライズします。 次にSupabaseのインスタンスをスタートします。 そうするとDockerのアプリケーションのほうでSupabaseのコンテナが起動してイメージが使用されていることがわかります。 ではContianerタブにあるSupabaseをクリックしその中の一覧からsupabase_studio_supabseを探します。 これがUIアプリのインスタンスですのでURLをクリックしてhttp://localhost:54323/を開きます。 これでローカルからSupabaseを起動することができました!

SvelteでSupabaseを使う例

superbase

今日は最近流行りのSvelteスタックで基本的な操作を理解できる例を紹介しますね。 Supabaseのセットアップ 前回のSupabaseの記事を読んでおきましょう。 次に、テーブルを準備します。 このスクリプトを選択します。 “Run”または “Execute” ボタンをクリックして選択したスクリプトを実行します。これにより、データベースに「Todo」テーブルが作成され、必要な行レベルのセキュリティルールも設定されます。 スクリプトが正常に実行されると、テーブルとルールが作成されたことを示す確認メッセージが表示されます。 “Data” タブに移動して、「Todo」テーブルが作成されていることを確認できます。 APIキーの取得 URLとキーの取得 プロジェクト設定に移動して(歯車アイコン)、APIタブを開き、API URLと匿名キー(anon key)を見つけてください。これらは次の手順で必要になります。 匿名キーは、クライアント側のAPIキーです。ユーザーがログインするまで、データベースへの「匿名アクセス」を許可します。ユーザーがログインしたら、キーはユーザー自身のログイントークンに切り替わります。これにより、データの行レベルのセキュリティが有効になります。 注意:サービスロールキーはセキュリティポリシーをバイパスし、データに完全なアクセス権を持っています。これらのキーは秘密に保つ必要があり、サーバー環境でのみ使用され、クライアントやブラウザ上で使用しないでください。 プロジェクトのクローン SupabaseのプロジェクトができたらSvelteのToDoリストのサンプルリポジトリがるのでこれをクローンしましょう。 https://github.com/supabase/supabase/tree/master/examples/todo-list/sveltejs-todo-list 下記のコマンドだとSupabaseの全部のリポがクローンされてしまうのでサイズはちょっと大きいかも ではSvelteの例があるディレクトリに移動してライブラリをインストールしましょう。同じディレクトリにNext.jsとNuxt.jsで作られたToDoリストのサンプルプロジェクトもあるようですね。 ではcode . のコマンドでVSCodeを開きましょう。 ルートディレクトリに.env.exampleのファイルがあるので名前を.envに変更します。 次に中にある環境変数に先ほどSupabaseでとってきた値を入力します。 アプリの起動 ではnpm run devのコマンドでSvelteアプリを起動します。 でサインアップをするとメールにちゃんとサインアップの確認メールが届きました。 そうするとToDoリストに誘導されてタスクを入力できるようになりましたね。 登録されたユーザーはAUthentication(認証)タブのユーザーから確認できますね。 でSvelteのアプリから追加したタスクもデータベースのテーブルに反映されていました。 Googleでのログインを追加する まずは、Gooelデベロッパーコンソールからプロジェクトを作成をします。Google Developer ConsoleからSupabaseのGoogle認証に使用するOAuthのClient IDを取得する手順は以下の通りです: ではSupabaseの認証タブでキーを登録します。 これだけで、OKです。素晴らしいですね。 ではGoogleでもログインできることを確認しましょう。 今日はコードの説明なしですが、次回詳しくSvelteのファイル構成と一緒に見ていきましょう。

Firebaseの代替バックエンド、Supabaseを使ってみよう

superbase

今日はSupabaseを紹介します。 「Supabase」は、オープンソースのプラットフォームで、バックエンドサーバー、データベース、認証、リアルタイムデータ、ストレージなどの機能を提供するBaaS(Backend as a Service)プロバイダーです。Supabaseは、アプリケーションの開発者がアプリケーションのバックエンド機能を迅速かつ簡単に構築および管理できるようにするために設計されています。 主な特徴と機能: Supabaseは、モダンなWebおよびモバイルアプリケーションのバックエンドを効率的に構築するための強力なツールとして広く利用されています。アプリケーションのバックエンドを設計、実装、デプロイするプロセスを簡素化し、開発者がフロントエンドに焦点を当てるのに役立ちます。 更にFirebaseではNoSQLしか提供していないのでPostgreSQLを使い方は必然的にこちらになりますね。 Supabaseのプロジェクトを始める では下記のサインインのページからSupabaseにサインインしましょう。 https://supabase.com/dashboard/sign-in? メールアドレスでサインアップしてもよいですし、GitGubのアカウントからサインインしてもOKですね。 サインイン後にダッシュボードからNew Projectを選択して新しいプロジェクトを作成しましょう。プロジェクトはOrganization(組織)に紐づくので組織を作成することになります。ここで無料のプランを選んでおきましょうね。 そのままDBのパスワードの設定の画面へ。 セットアップが完了するとダッシュボードのページにもどされ、APIキーやらが表示されます。 もちろん、公開しないこと! テーブルエディター 左側にあるメニューの上にテーブルエディターがあります。ここでUI上でPostgreSQLデータベースのテーブルを作成してデータを作成することもできますね。 Enable Row Level Security (RLS)とは Enable Row Level Security (RLS)は、テーブルへのアクセスを制限するためのセキュリティ機能です。RLSは行ベースのセキュリティ制御を提供し、データベース内の各行に対してアクセスポリシーを設定できます。この機能を有効にすることにより、データベースの安全性を向上させ、機密性の高いデータを保護できます。 RLSの利点は以下の通りです: RLSを有効にすると、ポリシーを設定してデータベースのセキュリティを強化できます。ポリシーは、特定のユーザーやロールに対するアクセス権を制御し、データのプライバシーとセキュリティを確保します。RLSは特に多くのユーザーやロールが存在し、データへの細かいアクセス制御が必要な場合に有用です。 データの挿入 次にInsertボタンを使って手動でデータを入力してみましょう。わかりやすいので説明不要ですね。 参考API 次に右上の<>APIのボタンをクリックします。 ここで使えるAPIの一覧が例で出てきます。