VaultS3

Accueil du dashboard en thème sombre : compteurs de buckets, d'objets, de stockage et de requêtes, au-dessus de la liste des derniers PUT.

API S3 et dashboard sur un seul port, sans fichier de configuration

VaultS3 est un serveur de stockage objet compatible S3 écrit en Go, livré en binaire statique, en paquets .deb, .rpm et .apk ou en image Docker. Il démarre sans fichier de configuration, affiche une seule fois le secret administrateur qu'il génère, puis sert l'API S3 et le dashboard web sur le port 9000. Les objets restent des fichiers ordinaires sur le disque, indexés dans un fichier BoltDB : un rclone sync vers un autre service S3 suffit pour en sortir. Le projet a mesuré 17 Mio de RAM au repos en août 2026, et un pic vers 185 Mio en écrivant des objets de 64 Mio par 16 en parallèle.

Suite ceph/s3-tests en CI, IAM et clés par bucket

  • La compatibilité S3 est mesurée avec ceph/s3-tests, la suite de référence du stockage objet, sur laquelle la CI bloque. Plus de 80 opérations sont couvertes, dont SigV4, le multipart et les URL pré-signées.
  • L'évaluation des policies IAM refuse par défaut, avec groupes, SSO OIDC/JWT, identifiants temporaires STS, listes d'IP et journal d'audit.
  • Le chiffrement au repos en AES-256-GCM gère SSE-S3, SSE-KMS et SSE-C, avec des clés par bucket que l'on peut faire tourner ou détruire (crypto-shredding).
  • L'erasure coding Reed-Solomon répartit chaque objet sur les disques locaux d'un nœud, et un healer répare en tâche de fond.
  • Le dashboard existe en cinq langues, dont le français, et gère aussi l'IAM, l'audit et les sauvegardes.
  • Les buckets s'importent depuis MinIO, SeaweedFS, Garage, Ceph, AWS, R2, Wasabi ou B2, dates, métadonnées, policies et tags compris.
  • Chaque release porte un checksums.txt signé, un SBOM SPDX par plateforme et une provenance Sigstore vérifiable hors ligne.

Mono-nœud conseillé, AGPL avec CLA, un seul mainteneur

Pour les données de production, le README recommande un seul nœud. Le cluster Raft et la réplication active-active restent en bêta, à valider sur sa propre charge, et le README demande de toujours garder une sauvegarde indépendante. La sauvegarde intégrée n'écrit que sur une cible locale et se restaure à la main.

Un nœud tient confortablement dix millions d'objets, d'après le guide de mise à l'échelle. Chaque objet occupe environ 600 octets d'index BoltDB, et chaque nœud d'un cluster garde par défaut l'index complet : 6 Go pour 10 millions d'objets. À cent millions, le guide demande du NVMe et assez de RAM pour garder l'index en cache.

Le projet n'a qu'un mainteneur, et le README le dit en tête. L'auteur a créé VaultS3 quand MinIO a fait passer en offre payante des fonctions dont il dépendait. Le même README renvoie vers d'autres outils quand ils conviennent mieux : Silo pour garder une installation MinIO telle quelle, RustFS ou SeaweedFS (Apache-2.0) si l'AGPL pose problème, Garage pour le plus petit stockage répliqué.

La licence AGPL-3.0 s'accompagne d'un CLA, qui laisse à l'auteur assez de droits pour relicencier le cœur. Il s'engage, dans une section datée du 23 août 2026, à garder le cœur sous AGPL et à ne jamais rendre payant ce qui est gratuit aujourd'hui. Les modules payants, dont un opérateur Kubernetes et une passerelle multi-tenant, sont des programmes séparés, en accès anticipé et sans prix affiché.

La 5.0.0, publiée le 7 octobre 2026, ne permet pas de revenir en arrière. Les objets chiffrés, les objets en erasure coding et les snapshots Raft qu'elle écrit sont illisibles pour la 4.4.79, et les policies IAM personnalisées doivent passer aux noms d'action AWS. Cette version corrige aussi des failles relevées par une revue complète du code, dont un bucket de site statique ouvert aux appels S3 anonymes. Le dépôt compte 118 releases entre la v1.0.0 du 25 février 2026 et la v5.0.7 du 26 octobre 2026, dont quatre ce dernier jour.