Volumes, fichiers et SFTP
Persistez vos données entre déploiements, parcourez les fichiers depuis le tableau de bord, et connectez-vous en SFTP.
Le système de fichiers d’un conteneur est jeté à chaque déploiement. Tout ce qui doit lui survivre — un répertoire d’uploads, les fichiers d’une base, un cache qu’on préfère ne pas reconstruire — vit dans un volume. Cette page couvre les volumes, l’explorateur de fichiers intégré, et l’accès SFTP.
Volumes
Un volume associe un chemin interne au conteneur à un stockage qui survit à un redéploiement. Déclarez-le sur l’application, au même endroit que les ports et les variables d’environnement :
/app/uploads → persisted
/app/node_modules → do NOT persist (rebuilt by the image)
/var/lib/data → persistednode_modules, vendor, un dist compilé. Un volume périmé masque alors l’image fraîchement construite, et vous déployez du nouveau code qui s’exécute sur les dépendances d’hier. Le symptôme : un build qui réussit et une application qui se comporte comme si elle n’avait jamais été déployée.Les volumes sont capturés par les sauvegardes sous leur propre interrupteur, et ils survivent au changement de tag d’image — c’est précisément pourquoi un service marketplace ou une base conserve ses données lors d’une montée de version.
Le gestionnaire de fichiers
Un explorateur des répertoires de données de vos applications et bases, directement dans le tableau de bord — sans shell, sans client SFTP, sans accès serveur :
- Parcourir les répertoires, lire et modifier les fichiers texte sur place.
- Téléverser et télécharger ; compresser une sélection en
.zipou.tar.gz; extraire une archive sur place. - Renommer, déplacer, créer des répertoires, supprimer.
- Changer les permissions et le propriétaire, ou lancer Réparer les permissions sur une arborescence — répertoires en
775, fichiers en664.
La lecture exige files:view, l’écriture files:manage. L’explorateur est confiné aux périmètres auxquels vous avez réellement accès : il liste vos projets, leurs applications et leurs bases, et n’atteint rien au-delà.
Le gestionnaire de fichiers indique aussi l’usage de stockage face au quota du projet, en octets. C’est le chiffre que les quotas font respecter : c’est donc celui à surveiller avant qu’un plafond de disque ne se mette à refuser des déploiements.
Comptes SFTP
Quand quelqu’un a besoin d’un vrai client SFTP — un designer qui pousse des fichiers de thème, un script de déploiement historique, un client qui n’apprendra pas un tableau de bord — délivrez un compte SFTP plutôt qu’un accès serveur :
- Limité à une application
- Le compte voit exactement les données d’une application. Le réglage par défaut approprié.
- Limité à un projet
- Un répertoire par application du projet, côte à côte. Pour quelqu’un qui travaille réellement sur tout le projet.
Chaque compte est chrooté : il est enfermé dans son propre répertoire personnel, et les données qu’il peut atteindre y sont montées explicitement, un répertoire par application. Il n’existe aucun chemin pour en sortir, ni aucun moyen de glisser latéralement vers les fichiers d’un autre locataire.
Un compte accepte un mot de passe, des clés publiques SSH, une permission en lecture seule ou en lecture-écriture, et une date d’expiration facultative. Rotation délivre un nouveau mot de passe, affiché une seule fois. Désactiver un compte coupe l’accès sans le supprimer — le bon geste quand quelqu’un s’en va et qu’on ne sait pas encore ce que ses scripts touchent.
Gérer les comptes exige sftp:manage ; les lister sftp:view. Aucun des deux n’appartient au rôle en lecture seule.