FirebaseのようにGUIでバックエンドを構築できる無料でオープンソースのシステム「PocketBase」、わずか1ファイルのみ

FirebaseやSupabaseなど、バックエンドサービスで提供されるデータベース機能や認証機能などを無料かつローカル環境にたった1ファイルで構築できるオープンソースのシステム「PocketBase」が公開されています。
PocketBase - Open Source backend in 1 file
https://pocketbase.io/

PocketBaseのドキュメントページにアクセスしてZIPファイルをダウンロードします。今回は、Windows環境で試すため「Download v0.34.0 for Windows x64」をクリックしてダウンロード。

ZIPファイルを解凍後、pocketbase.exeが入っているフォルダをエクスプローラーで表示し、アドレスバーにcmdと入力してEnterキーを押してコマンドプロンプトを起動します。

PocketBaseのサーバーを起動するため「pocketbase.exe serve」を入力しEnterキーを押します。

サーバーが起動後、自動でブラウザが立ち上がり管理者登録用の入力フォームが表示されます。

管理者アカウントとして登録するメールアドレスとパスワード、確認用パスワードを入力して「Create superuser and login」をクリックします。

管理画面が表示され、ユーザーの作成、データコレクションの作成や認証機能の設定などをGUIで行うことができます。

以下の3つのアドレスが基本となります。
・http://127.0.0.1:8090/
HTMLやCSSなど静的ファイルを設置することができます。
・http://127.0.0.1:8090/_/
管理画面が表示されます。
・http://127.0.0.1:8090/api/
APIエンドポイントとなります。
◆PocketBaseが提供する機能
・管理ダッシュボード
GUIによるユーザーやデータベースのコレクション管理、ファイルアップロード、ログファイル閲覧、メール送信設定が可能。
・データベース
組み込みSQLiteデータベースによるデータ管理。
・認証
メール/パスワード認証、ワンタイムパスワード、多要素認証、およびFacebook、Google、GitLab、GitHub経由のOAuth2認証、APIキー認証など。
・ファイルストレージ
写真、音声、動画ファイルのローカルストレージまたはS3バケットへのアップロード。
・REST API
シンプルなREST形式のAPIによるデータのCRUD操作、リスト表示、ページネーション、ソート、フィルタリング。
・リアルタイム機能
APIを通じたリアルタイムデータベースイベントへのサブスクリプション機能。
・拡張性
GoまたはJavaScriptでカスタムビジネスロジックの追加、新規ルートの作成、既存機能のインターセプトが可能。
◆同種ローカルバックエンドサービスとの性能比較
同様のローカルバックエンドサービスとしてTrailBase公式サイトでPocketBaseと以下のように比較しています。
・設計思想
PocketBaseは使いやすさと洗練された体験を重視する一方、TrailBaseはSQLやES6ランタイムなどの標準技術を採用し、サービスに依存しない柔軟性を追求しています。
・開発言語
PocketBaseはGo言語で、TrailBaseはRust言語で開発されています。
・パフォーマンス
TrailBaseのAPIはPocketBaseより約10倍高速であり、特にカスタムRustエンドポイントはPocketBaseのJavaScriptエンドポイントと比較して最大140倍速いとされています。
・認証機能
PocketBaseはステートレス性とシンプルさを優先し、localStorageでトークンを管理するため小規模から中規模アプリに適しています。対してTrailBaseはセキュリティと柔軟性を重視し、短命トークンと長命リフレッシュトークンのハイブリッドアプローチを採用しています。
・データベースアクセス
PocketBaseのスキーマ変更は専用の手順が必要ですが、TrailBaseはSQLiteの全機能に直接アクセスでき、再帰CTEや仮想テーブルなどの拡張機能も標準で提供します。
・クライアントライブラリ
PocketBaseはJavaScript/TypeScriptとDartを公式サポートしていますが、TrailBaseはJavaScript/TypeScript、Dart、C#、Python、Rustなどより幅広い言語に対応しています。
・ライセンス
PocketBaseはMITライセンスで完全に自由に利用可能です。TrailBaseはOSL-3.0ライセンスであり、改変して配布する際にはソースコードの公開義務がありますが、商用利用や再配布はMITと同様に可能です。
PocketBaseは、シンプルで使いやすいバックエンドシステムを求めている場合に最適で、TrailBaseはパフォーマンスと柔軟性を重視している場合に適しています。
◆PocketBaseの利用例の報告や議論など
・利用例の報告としてRaspberry Pi 5でのホームラボ運用や、PocketPagesとGeminiプロトコルによる2つのwebサービスを同時に提供
・ネットワーク管理コントローラーのOpenSOHOでは開発時間を大幅に短縮できたとの開発レビュー
・Web上での共同作業用ツールKavlaでは認証システムとしてPocketBaseを利用しており、開発者からは「フックは優れており、インフラストラクチャの起動などの比較的複雑なことでも簡単」との報告

・月額10ドル(約1500円)のHetznerサーバー上で5つのPocketBaseインスタンスを実行し、1日に何千人ものユーザーでも問題無く運用ができる単語ゲームサービス「SquareWord」を提供

・意見として管理画面がスマートフォンに対応していないため、PCでの操作が前提であること。管理画面の検索フォームだと1つのフィールドしか検索できず複雑な条件での検索ができない点が挙げられています。良い点としては、どのフィールドを公開するかを制御できること、全体的な安定性・S3互換のストレージ・自動バックアップ・最新の状態に保つのに苦労したがない点が挙げられていました。
PocketBaseは、ユーザー管理、認証機能、データ保存機能やREST APIによるデータ管理など最低限必要なツールが揃っており低スペックのVPSでも十分動作するコストパフォーマンスの良いバックエンドシステムを手軽に構築できるツールです。
・関連記事
Office 365・Bitwarden・GitHub・Google・Cloudflare・DockerHubなどアメリカのクラウドサービスから実際に脱却してみた記録 - GIGAZINE
大規模な分散システムを構築する際に押さえておくべき概念 - GIGAZINE
オープンソースでセルフホスト可能なBaaSプラットフォーム「Appwrite」を使ってみた - GIGAZINE
簡単にP2Pの分散型ストレージやKVSを試せる「Hypercore Protocol」を使ってみた - GIGAZINE
無料なのにAndroidでパッケージマネージャーからSSH・Apache・X11などをインストールできる高機能ターミナル「Termux」レビュー - GIGAZINE
・関連コンテンツ
in ソフトウェア, ウェブアプリ, Posted by darkhorse_logmk
You can read the machine translated English article 'PocketBase' is a free and open source s….







