Déployer Pocketbase en production sur un VPS via Coolify est l’une des combinaisons les plus efficaces en 2026 : un binaire Go performant, un déploiement automatisé Git-driven, HTTPS gratuit, backups intégrés. En 30 minutes vous avez un backend production-ready accessible en HTTPS depuis le monde entier. Voici le tutoriel pas à pas.
Voir le guide complet Pocketbase et le guide Coolify pour les bases.
Approche choisie
Pocketbase est un binaire Go monolithique. Trois approches valides :
- Approche A — Application via Dockerfile : on crée un Dockerfile minimal qui télécharge Pocketbase et le lance. Coolify le déploie via Git.
- Approche B — One-Click Application : Coolify a Pocketbase dans sa marketplace, déploiement en 30 secondes. Pratique pour les setups simples.
- Approche C — Pocketbase + code Go custom : si vous étendez Pocketbase avec des hooks Go, vous compilez votre propre binaire et le déployez via Dockerfile.
Ce tutoriel couvre l’approche A (la plus polyvalente).
Étape 1 — Préparer le repo Git
# Structure minimale
mon-pocketbase/
├── Dockerfile
├── .dockerignore
└── pb_hooks/ # optionnel, scripts JS
└── pb_migrations/ # optionnel, migrations versionnées
# Dockerfile
FROM alpine:3.20
ARG PB_VERSION=0.22.21
RUN apk add --no-cache unzip ca-certificates wget
RUN wget -O /tmp/pb.zip \
https://github.com/pocketbase/pocketbase/releases/download/v${PB_VERSION}/pocketbase_${PB_VERSION}_linux_amd64.zip \
&& unzip /tmp/pb.zip -d /pb \
&& rm /tmp/pb.zip \
&& chmod +x /pb/pocketbase
COPY pb_migrations/ /pb/pb_migrations/
COPY pb_hooks/ /pb/pb_hooks/
EXPOSE 8090
CMD ["/pb/pocketbase", "serve", "--http=0.0.0.0:8090"]
Pousser sur GitHub/GitLab/Forgejo. Dépôt privé recommandé puisque potentiellement vous y mettez des hooks JS sensibles.
Étape 2 — Créer l’application Coolify
- Coolify → Projects → votre projet → « + New Resource » → Application → Public/Private Repository
- Connecter votre source Git (déjà fait normalement)
- Sélectionner le dépôt et la branche
main - Build pack : Dockerfile
- Port exposé : 8090
- Environment Variables : aucune nécessaire au minimum (Pocketbase fonctionne tout seul)
Étape 3 — Storage persistant
Pocketbase stocke ses données dans ./pb_data/. Sans volume persistant, vos données disparaissent à chaque redéploiement.
- Application → Storages → « + New »
- Type : Persistent Volume (mounted to container)
- Source path : (laisser vide, Coolify gère)
- Destination path :
/pb/pb_data - Save
Étape 4 — Domaine et HTTPS
- Application → Domains → ajouter
api.exemple.sn - Activer « Force HTTPS » et « Generate SSL »
- Vérifier que votre DNS A record pointe sur le VPS Coolify
Étape 5 — Déployer
Cliquer « Deploy ». Coolify clone le repo, build l’image Docker, démarre le conteneur. Logs en direct dans l’onglet Logs. Comptez 2-5 minutes pour le premier déploiement (téléchargement Pocketbase inclus).
Une fois « Application started », ouvrez https://api.exemple.sn/_/ et créez le compte super-admin.
Étape 6 — SMTP pour l’authentification
Pour que les emails de vérification, password reset et invitation fonctionnent, configurer SMTP dans le dashboard admin :
- Settings → Mail Settings
- SMTP server : Brevo (ex-Sendinblue), Mailtrap, AWS SES, Resend
- Sender name + email
- Tester en bas du formulaire
Pour le Sénégal, Brevo offre 300 emails/jour gratuits, suffisant pour démarrer.
Étape 7 — Backups automatiques
Pocketbase a un système de backup intégré accessible depuis le dashboard admin (Settings → Backups). Configurez aussi un cron côté serveur pour pousser sur S3 (Backblaze B2) :
# Sur le serveur Coolify, créer un cron
# /etc/cron.daily/pb-backup
#!/bin/bash
CONTAINER=$(docker ps --filter name=pocketbase --format '{{.ID}}')
DATE=$(date +%Y%m%d)
docker exec $CONTAINER /pb/pocketbase backup --filename=pb-$DATE.zip
docker cp $CONTAINER:/pb/pb_data/backups/pb-$DATE.zip /tmp/
aws s3 cp /tmp/pb-$DATE.zip s3://backups/pocketbase/
rm /tmp/pb-$DATE.zip
Étape 8 — Mises à jour
Pour mettre à jour Pocketbase, modifier PB_VERSION dans le Dockerfile, commit, push. Coolify redéploie automatiquement. Les données persistent grâce au volume.
Adaptation Afrique de l’Ouest
Pour une PME ouest-africaine, Pocketbase + Coolify sur Hetzner CX22 (4 €/mois) couvre une app mobile à 5000-10 000 utilisateurs actifs/jour. Pour aller plus loin, scaling vertical (CX32 ou CX42) sans changer l’architecture.
Erreurs fréquentes
| Erreur | Cause | Solution |
|---|---|---|
| Données perdues à chaque redeploy | Volume persistant pas configuré | Storages → mount /pb/pb_data |
| Build Docker très long | Téléchargement Pocketbase à chaque build | Cache Docker layers via .dockerignore propre |
| Emails non envoyés | SMTP non configuré | Settings → Mail Settings |
| Uploads échouent | Limites Coolify ou Traefik | Augmenter client_max_body_size |