My notes about PocketBase, an βopen-source backend in 1 file.β
- PocketBase with LINE Login
- PocketBase TypeScript Type Generator
- Implementing Conditional Updates in PocketBase
My setup
Here's how I run PocketBase on my VPS using Dokploy:
services:
pocketbase:
image: ghcr.io/muchobien/pocketbase:latest
restart: unless-stopped
environment:
- PB_HOST=0.0.0.0
- PB_PORT=8090
- PB_ADMIN_EMAIL=${PB_ADMIN_EMAIL:?"PB_ADMIN_EMAIL missing"}
- PB_ADMIN_PASSWORD=${PB_ADMIN_PASSWORD:?"PB_ADMIN_PASSWORD missing"}
- TZ=${TZ:?"TZ missing"}
expose:
- 8090
volumes:
- pb_data:/pb_data
healthcheck:
test:
[
'CMD',
'wget',
'--no-verbose',
'--tries=1',
'--spider',
'http://localhost:8090/api/health',
]
interval: 30s
timeout: 10s
retries: 3
start_period: 30s
volumes:
pb_data:(Or use dtinth/pocketbase-dokploy directly as a Git source for a Compose service)
Environment variables generator
PB_ADMIN_EMAIL=admin@localhost
PB_ADMIN_PASSWORD=__PASSWORD__
TZ=__TZ__Password is randomly generated on each page load; timezone is auto-detected from your browser.
Snippets
Importing PocketBase JS SDK:
import PocketBase from 'pocketbase'
export const pb = new PocketBase('β¦')Authenticating as superuser:
await pb
.collection('_superusers')
.authWithPassword(process.env.PB_ADMIN_EMAIL!, process.env.PB_ADMIN_PASSWORD!)