Initial vault setup
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
---
|
||||
title: PocketBase
|
||||
created: 2026-06-08
|
||||
updated: 2026-06-08
|
||||
type: app
|
||||
tags: [catalogue, backend, app-marathon3-batch-c]
|
||||
confidence: high
|
||||
contested: false
|
||||
sources: [https://selfh.st/apps/?tag=backend&app=pocketbase]
|
||||
---
|
||||
|
||||
# 🗄️ PocketBase
|
||||
|
||||
> Le Backend-as-a-Service ultra-léger en Go avec base SQLite embarquée — un Firebase killer en 13 Mo.
|
||||
|
||||
## 📋 Informations Générales
|
||||
|
||||
| Champ | Valeur |
|
||||
| :--- | :--- |
|
||||
| **Site web** | [pocketbase.io](https://pocketbase.io) |
|
||||
| **GitHub** | [pocketbase/pocketbase](https://github.com/pocketbase/pocketbase) |
|
||||
| **License** | MIT |
|
||||
| **Langage** | Go |
|
||||
| **Étoiles GitHub** | 45k ⭐ |
|
||||
| **Catégorie** | [[cat-backend|Backend]] |
|
||||
|
||||
## 📝 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é)
|
||||
|
||||
```bash
|
||||
# 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
|
||||
|
||||
```yaml
|
||||
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: admin@example.com
|
||||
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
|
||||
|
||||
## 📚 Ressources
|
||||
- [Documentation](https://pocketbase.io/docs/)
|
||||
- [SDK JavaScript](https://github.com/pocketbase/js-sdk)
|
||||
- [Showcase](https://github.com/pocketbase/pocketbase/discussions/categories/show-and-tell)
|
||||
|
||||
## Pages Liées
|
||||
- [[cat-backend]] — Catégorie Backend
|
||||
- [[app-windmill]] — Dev platform JS/Python
|
||||
- [[app-monica]] — Utilise Laravel/PHP, autre approche
|
||||
Reference in New Issue
Block a user