Auto-pause des projets Free
Backends Free mis en pause après 7 j d'inactivité, réveil automatique en moins de 30 s. Préservation totale des données. Permet le Free tier permanent.
Auto-pause des projets Free
L'auto-pause est le mécanisme économique qui rend le Free tier viable : un backend inactif depuis 7 jours est mis en pause automatiquement (arrêt du container PostgreSQL, libération RAM), tout en préservant intégralement les données sur disque. Au premier accès suivant, le projet se réveille automatiquement en moins de 30 secondes, de manière transparente pour l'app cliente (au prix d'un retry à gérer côté client).
Ce mécanisme permet d'héberger jusqu'à 5 000 projets par compute, avec ~90 % en pause à tout moment et ~10 % actifs simultanément.
Quand c'est OK — quand pas
OK pour Free
- Démos commerciales ponctuelles
- Side-projects sans trafic régulier
- Apprentissage / formation
- Prototypes et MVPs en pré-validation
Passez à Pro si
- L'app est en production avec des utilisateurs réels
- Le trafic est régulier mais imprévisible
- Un délai de 10-30 s au réveil est inacceptable
- Vous avez besoin du PITR ou des branches
Critères de détection
Un projet est considéré inactif lorsqu'aucune des requêtes suivantes n'a été reçue depuis 7 jours :
- Connexion PostgreSQL directe
- Requête sur l'API REST (
/rest/v1/) - Requête d'authentification (
/auth/v1/) - Connexion WebSocket Realtime (
/realtime/v1/) - Requête Storage (
/storage/v1/) - Invocation de fonction serverless (
/functions/v1/) - Connexion au Studio
Un cron horaire identifie les projets Free dépassant le seuil.
Workflow de mise en pause
- Mise en attente : nouvelles requêtes reçoivent
503+ headerRetry-After: 30 - Drain : 30 s d'attente pour terminaison des requêtes en cours
- Arrêt propre PostgreSQL :
pg_ctl stop -m fast - Arrêt des services data plane (API REST, Realtime, etc.)
- Libération RAM (le dataset disque reste monté)
- Statut projet →
paused
Workflow de réveil
- Première requête → handler de resume
- Statut →
resuming, démarrage container PostgreSQL - Attente prêt (max 60 s)
- Warm-up des services data plane
- Statut →
active, route activée - Retry de la requête initiale ou
503 Retry-After: 5au client
Cible : 10 à 30 secondes selon la charge du compute. Côté client, prévoir un retry avec backoff exponentiel.
Gestion côté client
async function fetchWithAutoResume(url, options, retries = 5) {
for (let i = 0; i < retries; i++) {
const response = await fetch(url, options);
if (response.status === 503) {
const retryAfter = parseInt(response.headers.get("Retry-After") || "5");
await new Promise(r => setTimeout(r, retryAfter * 1000));
continue;
}
return response;
}
throw new Error("Backend injoignable après plusieurs tentatives.");
}
Notifications utilisateur
| Événement | Délai |
|---|---|
| Avertissement inactivité | Jour 5 |
| Mise en pause | Jour 7 |
| Avertissement suppression | Jour 60 après pause |
| Suppression imminente (J-1) | Jour 89 après pause |
Suppression après 90 jours de pause
Un projet Free resté en pause 90 jours est définitivement supprimé (dataset détruit). Réactivation possible avant la suppression :
paas backends resume wzfbhd paas backends status wzfbhd
Plans non concernés
| Plan | Auto-pause |
|---|---|
| Free | Après 7 jours d'inactivité |
| Pro | Jamais |
| Business | Jamais |
| Entreprise | Jamais |
Impact sur les données
La pause ne supprime aucune donnée. Tables, fichiers, configurations auth, fonctions serverless — tout est préservé. Après réveil, le projet est dans l'état exact d'avant la pause.
Pour aller plus loin
Tarification associée
Free permanent (1 backend, auto-pause après 7 j). Pro à partir de ~25 €/backend/mois (jamais de pause). Voir tarifs.