PocketBaseは、単一の実行ファイルで動作するオープンソースのGoバックエンドです。埋め込みデータベース(SQLite)、リアルタイムサブスクリプション、ファイルとユーザー管理、管理ダッシュボードUI、そしてシンプルなREST APIを提供します。
PocketBaseとは
PocketBaseは、以下の機能を備えた軽量バックエンドソリューションです:
- 埋め込みSQLiteデータベース(リアルタイムサブスクリプション対応)
- 組み込みのファイルとユーザー管理機能
- 便利な管理ダッシュボードUI
- シンプルなREST API
単一の実行ファイルで動作するため、インストールや運用が非常に簡単です。
PocketBase使ってみた!!!
確かにこれも結構良さそう!!! https://t.co/7GEhJLsDv0 pic.twitter.com/gsBXxBEfAC— Maki@Sunwood AI Labs. (@hAru_mAki_ch) March 23, 2025
インストール方法
実際のインストール実行例
以下は、Linux環境でGoをインストールしてPocketBaseをビルドする実際の実行例です。各コマンドの説明も追加しています:
# Step 1: Goの最新バージョンをダウンロード
# wget コマンドでGoの公式サイトから最新バージョンをダウンロードします
maki@giselle:~/prj/pocketbase$ wget https://go.dev/dl/go1.23.2.linux-amd64.tar.gz
--2025-03-23 02:35:37-- https://go.dev/dl/go1.23.2.linux-amd64.tar.gz
Resolving go.dev (go.dev)... 2001:4860:4802:34::15, 2001:4860:4802:36::15, 2001:4860:4802:38::15, ...
Connecting to go.dev (go.dev)|2001:4860:4802:34::15|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://dl.google.com/go/go1.23.2.linux-amd64.tar.gz [following]
--2025-03-23 02:35:37-- https://dl.google.com/go/go1.23.2.linux-amd64.tar.gz
Resolving dl.google.com (dl.google.com)... 2404:6800:400a:80a::200e, 142.250.206.238
Connecting to dl.google.com (dl.google.com)|2404:6800:400a:80a::200e|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 73611540 (70M) [application/x-gzip]
Saving to: 'go1.23.2.linux-amd64.tar.gz'
go1.23.2.linux-amd64.tar.gz 100%[=============>] 70.20M 10.5MB/s in 6.6s
2025-03-23 02:35:44 (10.7 MB/s) - 'go1.23.2.linux-amd64.tar.gz' saved [73611540/73611540]
# Step 2: 既存のGoをクリーンアップし、新しいバージョンをインストール
# 既存のGoインストールを削除し、ダウンロードしたアーカイブを展開します
maki@giselle:~/prj/pocketbase$ sudo rm -rf /usr/local/go
maki@giselle:~/prj/pocketbase$ sudo tar -C /usr/local -xzf go1.23.2.linux-amd64.tar.gz
# Step 3: 環境変数PATHを設定
# Goのバイナリにパスを通して、どこからでもアクセスできるようにします
maki@giselle:~/prj/pocketbase$ echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
source ~/.bashrc
# Step 4: インストールの確認
# go version コマンドでGoが正しくインストールされたか確認します
maki@giselle:~/prj/pocketbase$ go version
go version go1.23.2 linux/amd64
# Step 5: PocketBaseのサンプルアプリをビルド
# examples/base ディレクトリに移動して、サンプルアプリをビルドします
# CGO_ENABLED=0 は純粋なGoでビルドするための設定です
maki@giselle:~/prj/pocketbase$ cd examples/base
CGO_ENABLED=0 go build
go: downloading github.com/fatih/color v1.18.0
go: downloading github.com/spf13/cobra v1.9.1
go: downloading github.com/pocketbase/dbx v1.11.0
# (多数の依存ライブラリをダウンロード - 初回は時間がかかります)
# Step 6: ビルドしたアプリケーションを起動
# ./base serve コマンドで PocketBase サーバーを起動します
maki@giselle:~/prj/pocketbase/examples/base$ ./base serve
2025/03/23 02:37:45 Server started at http://127.0.0.1:8090
├─ REST API: http://127.0.0.1:8090/api/
└─ Dashboard: http://127.0.0.1:8090/_/
# Step 7: 初回起動時、Superuserアカウント作成用のURLが表示されます
# このURLをブラウザで開くか、superuser upsertコマンドを使用します
(!) Launch the URL below in the browser if it hasn't been open already to create your first superuser account:

http://127.0.0.1:8090/_/#/pbinstal/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
(you can also create your first superuser by running: ./base superuser upsert EMAIL PASS)
ソースコードからビルドする方法
ソースコードからビルドする場合は、Goがインストールされている必要があります(Go 1.23以上推奨):
-
Goをインストールします(まだの場合):
wget https://go.dev/dl/go1.23.2.linux-amd64.tar.gz sudo rm -rf /usr/local/go # 既存のGoがある場合 sudo tar -C /usr/local -xzf go1.23.2.linux-amd64.tar.gz echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc source ~/.bashrc go version # インストールを確認
-
PocketBaseのリポジトリをクローンします:
git clone https://github.com/pocketbase/pocketbase.git cd pocketbase
-
サンプルアプリケーションをビルドします:
cd examples/base CGO_ENABLED=0 go build
-
ビルドした実行ファイルを起動します:
./base serve
初回起動とSuperuserアカウントの作成
PocketBase v0.23.0以降では、セキュリティ向上のため初回のSuperuserアカウント作成方法が変更されています。
方法1: コマンドラインでSuperuserを作成する
PocketBaseを起動する前に、以下のコマンドを実行してSuperuserアカウントを作成できます:
# superuser upsert コマンドで管理者アカウントを作成
# 形式: ./実行ファイル名 superuser upsert メールアドレス パスワード
./base superuser upsert メールアドレス パスワード
実際の実行例:
# baseディレクトリに移動してコマンドを実行
maki@giselle:~/prj/pocketbase/examples/base$ ./base superuser upsert admin@example.com mypassword123
Successfully saved superuser "admin@example.com"!
このコマンドは、指定したメールアドレスとパスワードでSuperuserアカウントを作成します。アカウントが既に存在する場合は上書きされるため、デプロイスクリプトなどで安全に使用できます。
方法2: 自動生成されたURLを使用する
PocketBaseを初めて起動すると、ログに一時的なトークン付きURLが表示されます:
2025/03/23 02:37:45 Server started at http://127.0.0.1:8090
├─ REST API: http://127.0.0.1:8090/api/
└─ Dashboard: http://127.0.0.1:8090/_/
(!) Launch the URL below in the browser if it hasn't been open already to create your first superuser account:

http://127.0.0.1:8090/_/#/pbinstal/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjb2xsZWN0aW9uSWQiOiJwYmNfMzE0MjYzNTgyMyIsImV4cCI6MTc0MjY5OTI2NSwiaWQiOiIxYWU2OHBvNTNxNzIyMXkiLCJyZWZyZXNoYWJsZSI6ZmFsc2UsInR5cGUiOiJhdXRoIn0.rA7p8GOS3Z3BMWhx39AxW4Wj2vrqDg5R6NH83rU5xsY
(you can also create your first superuser by running: ./base superuser upsert EMAIL PASS)
このURLをブラウザで開くと、Superuserアカウント作成画面に直接アクセスできます。URLには一時的なトークンが含まれており、セキュリティを確保しながら初期設定を行うことができます。
基本的な使い方
-
PocketBaseを起動します:
./base serve # または ./pocketbase serve
-
管理ダッシュボードにアクセスします:
http://127.0.0.1:8090/_/
-
作成したSuperuserアカウントでログインします。
-
コレクション(データベーステーブル)の作成、APIの設定、ユーザー管理などが可能です。
カスタマイズと拡張
PocketBaseは、独自のカスタムアプリケーションを構築するためのフレームワークとしても使用できます。以下は実際のカスタムアプリケーション作成例です:
# Step 1: 新しいプロジェクトディレクトリを作成
# 新しいアプリケーション用のディレクトリを作成します
maki@giselle:~/prj/pocketbase/examples$ mkdir myapp
maki@giselle:~/prj/pocketbase/examples$ cd myapp
# Step 2: Go Moduleの初期化
# go mod init コマンドで新しいGoモジュールを作成します
maki@giselle:~/prj/pocketbase/examples/myapp$ go mod init myapp
go: creating new go.mod: module myapp
# Step 3: 依存関係を解決
# go mod tidy コマンドで必要な依存パッケージを自動的にダウンロードします
maki@giselle:~/prj/pocketbase/examples/myapp$ go mod tidy
go: finding module for package github.com/pocketbase/pocketbase/core
go: finding module for package github.com/pocketbase/pocketbase
go: downloading github.com/pocketbase/pocketbase v0.26.2
go: found github.com/pocketbase/pocketbase in github.com/pocketbase/pocketbase v0.26.2
go: found github.com/pocketbase/pocketbase/core in github.com/pocketbase/pocketbase v0.26.2
# (多数の依存ライブラリをダウンロード)
# Step 4: アプリケーションをビルド
# CGO_ENABLED=0 go build コマンドでアプリケーションをビルドします
maki@giselle:~/prj/pocketbase/examples/myapp$ CGO_ENABLED=0 go build
# Step 5: 作成したアプリケーションを実行
# ./myapp serve コマンドでサーバーを起動します
maki@giselle:~/prj/pocketbase/examples/myapp$ ./myapp serve
2025/03/23 02:51:51 Server started at http://127.0.0.1:8090
├─ REST API: http://127.0.0.1:8090/api/
└─ Dashboard: http://127.0.0.1:8090/_/
(!) Launch the URL below in the browser if it hasn't been open already to create your first superuser account:

http://127.0.0.1:8090/_/#/pbinstal/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
(you can also create your first superuser by running: ./myapp superuser upsert EMAIL PASS)
カスタムアプリケーションのmain.go
の内容例(このファイルを上記のmyappディレクトリに作成する必要があります):
// main.go - PocketBaseを拡張したカスタムアプリケーション
package main
import (
"log"
"github.com/pocketbase/pocketbase"
"github.com/pocketbase/pocketbase/core"
)
func main() {
// PocketBaseアプリケーションのインスタンスを作成
app := pocketbase.New()
// サーバー起動時のイベントハンドラを登録
app.OnServe().BindFunc(func(se *core.ServeEvent) error {
// 新しいAPIエンドポイント "/hello" を追加
se.Router.GET("/hello", func(re *core.RequestEvent) error {
return re.String(200, "Hello world!")
})
// イベント処理を続行
return se.Next()
})
// アプリケーション起動
if err := app.Start(); err != nil {
log.Fatal(err)
}
}
よくある問題と解決策
問題: 管理画面にアクセスできない
解決策: v0.23.0以降では、直接/_/
にアクセスするだけではSuperuserアカウントを作成できません。代わりに以下のいずれかを試してください:
./base superuser upsert メールアドレス パスワード
コマンドを実行する- ログに表示されている一時的なトークン付きURLを使用する
問題: ポートの変更
解決策: 違うポートで起動するには以下のようにします:
./base serve --http="0.0.0.0:8080"
問題: データのバックアップ
解決策: 全データはpb_data
ディレクトリに保存されます。このディレクトリをコピーするだけでバックアップが取れます。また、管理画面の「Settings」→「Backups」からもバックアップを作成できます。
PocketBaseは継続的に開発が進められており、v1.0.0までは完全な後方互換性は保証されていません。最新の情報は公式ドキュメントを参照してください。
コメント