Description
PocketBase est un BaaS (Backend-as-a-Service) open source écrit en Go, distributé comme un binaire unique (13 Mo) embarquant SQLite, admin UI, auth, files, realtime et hooks serveur. Idéal pour remplacer un Firebase/Supabase self-hosted. Différence vs Supabase/Firebase : mono-binaire zéro-dépendance, base SQLite (pas Postgres à gérer), pas de fonction serverless — extensions Go/JavaScript natives, déploiement trivial, offline-first. Pour qui : développeurs solo, prototypes rapides, apps mobiles/web self-hostées, hobbyists, labs de POC.
Installation
Binaire natif (recommandé)
# Télécharger depuis GitHub releases wget https://github.com/pocketbase/pocketbase/releases/download/v0.22.0/pocketbase_0.22.0_linux_amd64.zip unzip pocketbase_0.22.0_linux_amd64.zip chmod +x pocketbase ./pocketbase serve --http=0.0.0.0:8090
Docker Compose
version: '3.8'
services:
pocketbase:
image: ghcr.io/muchobien/pocketbase:latest
container_name: pocketbase
restart: unless-stopped
ports:
- "8090:8090"
volumes:
- pb-data:/app/pb_data
environment:
PB_ADMIN_EMAIL: [email protected]
PB_ADMIN_PASSWORD: ${PB_ADMIN_PASSWORD}
labels:
- "traefik.enable=true"
- "traefik.http.routers.pocketbase.rule=Host(`pb.example.com`)"
- "traefik.http.services.pocketbase.loadbalancer.server.port=8090"
volumes:
pb-data:
Alternatives
Open Source
- Appwrite — BaaS plus complet (PHP), Docker natif, multi-langages
- Supabase — BaaS Postgres + GoTrue + Realtime (lourd à opérer)
- Directus — headless CMS au-dessus de Postgres existant
- Strapi — CMS Node.js (lourd, MongoDB/Postgres)
- Parse Platform — BaaS Node.js historique (Meta origin)
Propriétaires
- Firebase — BaaS Google (vendor lock-in agressif)
- Supabase Cloud — managed Postgres + BaaS
- AWS Amplify — suite BaaS Amazon
- Backendless — BaaS commercial mature
Sécurité
- Auth native : email/password, OAuth2 (Google/GitHub/Microsoft/Apple), MFA TOTP
- RLS : règles de sécurité par collection (langage dédié, type Postgres policy)
- JWT : tokens courts, rotation des secrets
- Backups : copier
pb_data/suffit (SQLite + blob) - Rate limiting : hooks serveur Go/JS customisables
