Pourquoi choisir un cloud auto-hébergé en 2026 ?

Stocker ses photos et ses documents chez un géant américain pose problème. Vous ne maîtrisez ni le prix, ni la confidentialité, ni la localisation de vos données. Certes, les alternatives libres existent. Cependant, elles restent souvent trop lourdes. Elles imposent des bases de données complexes, des dizaines de conteneurs et des interfaces conçues pour les entreprises.

À l’inverse, BabaDrive choisit la simplicité : trois dépendances, un seul fichier serveur et zéro base de données. Pour cette solution de cloud auto-hébergé, le système de fichiers sert directement de base de données. Copiez le dossier, lancez la commande, et votre service est en ligne.

Ce que propose notre cloud auto-hébergé

  • Un explorateur complet : Basculez entre la vue grille et la vue liste. Naviguez facilement grâce au fil d’Ariane, à la barre latérale, au menu contextuel et au glisser-déposer.

  • Upload multi-fichiers jusqu’à 4 Go : Envoyez vos documents par bouton ou glisser-déposer. Suivez le transfert avec la barre de progression ou annulez-le à tout moment.

  • Téléchargement de dossiers entiers : Le serveur génère une archive ZIP à la volée. Il envoie le flux directement, sans créer de fichier temporaire.

  • Aperçu intégré : Consultez vos images, vidéos, PDF et fichiers texte. L’application intègre aussi un lecteur audio avec une analyse spectrale sur canvas.

  • Miniatures WebP : Le module sharp crée les miniatures et les met en cache. Vous pouvez ajuster leur taille d’affichage.

  • Partage par lien : Créez des liens sécurisés par jeton aléatoire. Définissez une date d’expiration et protégez l’accès par mot de passe. Révoquez les accès en un clic.

  • Verrouillage de dossier : Protégez chaque dossier avec un mot de passe propre. Nous le dérivons avec scrypt, indépendamment de votre session.

  • Notifications Discord : Un webhook vous alerte lors d’un upload ou d’un partage. Il indique l’adresse IP et sa géolocalisation.

  • Interface responsive : Le design en glassmorphism fonctionne parfaitement sur mobile.

Une architecture minimale pour votre cloud auto-hébergé

Le serveur s’appuie sur Node.js et Express. Il utilise multer pour la réception des fichiers et archiver pour les compressions ZIP.

En revanche, nous déclarons sharp et ffmpeg-static en dépendances optionnelles. Si leur installation échoue — un cas fréquent sur un vieux Raspberry Pi — l’application démarre quand même. Dans ce cas, le serveur distribue les images d’origine. Un composant secondaire ne bloquera donc jamais le démarrage.

Le stockage en chemin haché

Ce choix de conception structure tout le projet. Le serveur écrit chaque fichier sur le disque dans un sous-dossier .h/<hash>/. Ce hash est un identifiant aléatoire, mais le fichier conserve son nom réel à l’intérieur.

Ce système offre deux avantages majeurs :

  1. Une confidentialité renforcée : Les URL publiques n’exposent aucun chemin réel. Un lien de partage montre un jeton, jamais /data/photos/passeport.pdf.

  2. Une gestion simplifiée : Renommer un fichier devient une simple opération logique, car le contenu ne bouge pas. Deux fichiers portant le même nom peuvent aussi coexister sans conflit. Enfin, un cache en mémoire évite de recharger l’arborescence à chaque requête.

La sécurité intégrée au cloud auto-hébergé

  • Gestion des sessions : Une session signée reste active 30 jours, avec une protection intégrée contre les attaques par force brute.

  • Anti-traversée de répertoire : Le système vérifie et normalise chaque chemin. Cela bloque les tentatives d’intrusion de type ../.

  • Chiffrement fort : Le serveur dérive les mots de passe des dossiers avec scrypt et un sel aléatoire. Il ne stocke jamais de données en clair.

  • Contrôle des partages : Les liens expirent après 24 heures par défaut, mais vous pouvez modifier ce délai ou les détruire à tout moment.

Les enseignements du projet

Développer un explorateur de fichiers oblige à résoudre des défis que les frameworks masquent habituellement :

  • Gérer des téléchargements en flux pour économiser la mémoire sur les gros fichiers.

  • Invalider le cache proprement lorsque le contenu du disque change.

  • Traiter les erreurs multer pour renvoyer un code 413 clair.

  • Maintenir le service même quand une dépendance native manque.

Une application utile au quotidien n’a pas besoin d’être complexe. En pratique, 1 300 lignes de code serveur et 900 lignes côté client suffisent pour remplacer un abonnement payant.

À propos de l’auteur

Bastien Brousse est développeur en France. Il conçoit des applications web en JavaScript et Node.js. Passionné par la souveraineté numérique et la sécurité des données, il privilégie les architectures simples et durables. Si vous souhaitez explorer la gestion de la confidentialité et des infrastructures sécurisées, découvrez également ses travaux en cybersécurité et projets open source.