Skip to content

PocketBase

   

supabaseと格闘していたら、PocketBase - Open Source backend in 1 fileという似たような機能を提供するツールを見つけた。

GitHub見ると1週間ほど前に公開されたばかりのよう。

FROM alpine

WORKDIR /app

RUN wget https://github.com/pocketbase/pocketbase/releases/download/v0.2.4/pocketbase_0.2.4_linux_amd64.zip
RUN unzip pocketbase_0.2.4_linux_amd64.zip
RUN rm pocketbase_0.2.4_linux_amd64.zip

CMD [ "/app/pocketbase", "serve", "--http", "0.0.0.0:8090" ]

これでhttp://0.0.0.0:8090/_/にアクセスしたら管理者アカウントの作成画面が出た。 --httpオプション指定しないとアクセスできない。

version: '3'

services:
  pocketbase:
    image: pocketbase:local
    build:
      context: .
      dockerfile: Dockerfile.pocketbase
    volumes:
      - ./pb_data:/app/pb_data
    ports:
      - 8090:8090

これでコンテナ落としてもデータは保持される。

ユーザー作ってみる

$ curl -v -X POST -H 'Content-Type: application/json' --data '{"email": "email@example.com", "password": "secret123", "passwordConfirm": "secret123"}' 'http://localhost:8090/api/users'|jq .
{
  "id": "EnFokKc3NvP1f88",
  "created": "2022-07-13 10:08:35.276",
  "updated": "2022-07-13 10:08:35.276",
  "email": "email@example.com",
  "lastResetSentAt": "",
  "verified": false,
  "lastVerificationSentAt": "",
  "profile": {
    "@collectionId": "hchwXTv3ajveMt7",
    "@collectionName": "profiles",
    "created": "2022-07-13 10:08:35.276",
    "id": "OPV0nDugyANdoIV",
    "updated": "2022-07-13 10:08:35.276",
    "userId": "EnFokKc3NvP1f88"
  }
}

いけるやん。