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

  1. Mise en attente : nouvelles requêtes reçoivent 503 + header Retry-After: 30
  2. Drain : 30 s d'attente pour terminaison des requêtes en cours
  3. Arrêt propre PostgreSQL : pg_ctl stop -m fast
  4. Arrêt des services data plane (API REST, Realtime, etc.)
  5. Libération RAM (le dataset disque reste monté)
  6. Statut projet → paused

Workflow de réveil

  1. Première requête → handler de resume
  2. Statut → resuming, démarrage container PostgreSQL
  3. Attente prêt (max 60 s)
  4. Warm-up des services data plane
  5. Statut → active, route activée
  6. Retry de la requête initiale ou 503 Retry-After: 5 au 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énementDélai
Avertissement inactivitéJour 5
Mise en pauseJour 7
Avertissement suppressionJour 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

PlanAuto-pause
FreeAprès 7 jours d'inactivité
ProJamais
BusinessJamais
EntrepriseJamais

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.