Volumes persistants
Mis à jour le 27 octobre 2026
Volumes persistants
Par défaut, le système de fichiers d'un service est éphémère : chaque redéploiement repart de l'image fraîche, tout fichier écrit à l'exécution disparaît. Un volume persistant attache un répertoire durable qui survit aux redéploiements et redémarrages.
Ajouter un volume
Dans le panneau du service, onglet Volumes :
- Chemin de montage : le répertoire vu par votre application (ex.
/app/uploads). - Taille : en Gio, selon votre besoin et les limites de votre plan.
Le volume est provisionné et monté au prochain démarrage du conteneur. Tout ce que votre application écrit sous ce chemin est conservé.
Cas d'usage
| Besoin | Chemin typique |
|---|---|
| Uploads utilisateurs | /app/uploads |
| Base SQLite | /app/data |
| Contenu d'un CMS (WordPress, Ghost) | monté automatiquement par les templates |
| Cache régénérable mais coûteux | /app/cache |
// L'application écrit simplement dans le chemin monté
await fs.promises.writeFile("/app/uploads/avatar-42.png", buffer);
Ce qu'il faut savoir
- Le reste du système de fichiers reste éphémère : seuls les chemins montés persistent. Ne comptez sur rien d'autre.
- Volume et scaling : un volume est attaché à une instance. Si vous prévoyez de passer à plusieurs réplicas, préférez un stockage partagé (base de données, stockage objet) pour les données accédées par toutes les instances.
- La taille se choisit à la création. Prévoyez un peu de marge.
- Suppression : supprimer un volume efface définitivement son contenu. Exportez d'abord ce qui doit l'être (via le terminal web, par exemple).
Bases de données
Les services de type base de données (PostgreSQL, MySQL…) sont déjà adossés à un volume persistant géré par la plateforme : rien à configurer, vos données survivent nativement aux redémarrages.