S3 API and dashboard on one port, no config file
VaultS3 is an S3-compatible object store written in Go, shipped as a static binary, as .deb, .rpm and .apk packages, or as a Docker image. It starts without a config file, generates an admin secret and prints it once, then serves the S3 API and the web dashboard together on port 9000. Objects stay on disk as plain files next to a BoltDB index, so moving out is an rclone sync to any other S3 endpoint. The project's own measurement, from August 2026, is 17 MiB of memory at idle and about 185 MiB at peak while writing 64 MiB objects 16 at a time.
Graded by ceph/s3-tests, with per-bucket keys and IAM
- S3 compatibility is checked against
ceph/s3-tests, the suite other object stores are tested with, and CI fails when a test expected to pass breaks. The API covers 80+ operations, SigV4, multipart and presigned URLs among them. - IAM policy evaluation is default-deny, alongside groups, OIDC/JWT SSO, STS temporary credentials, IP allowlists and an audit trail.
- Encryption at rest is AES-256-GCM across SSE-S3, SSE-KMS and SSE-C, with per-bucket keys you can rotate or destroy to crypto-shred a bucket.
- Reed-Solomon erasure coding spreads each object over a node's local disks, and a background healer repairs damaged shards.
- The dashboard speaks five languages (English, German, French, Russian, Simplified Chinese) and handles IAM, audit and backups as well as files.
- Buckets import from MinIO, SeaweedFS, Garage, Ceph, AWS, R2, Wasabi or B2, with dates, metadata, policies and tags carried over.
- Every release ships a signed
checksums.txt, an SPDX SBOM per platform and a Sigstore provenance bundle that verifies offline.
Beta clustering, one maintainer, AGPL under a CLA
The README's advice for production data is a single node. Raft clustering and active-active replication are labelled beta and should be validated against your own workload first, and the README says to keep an independent backup regardless. The built-in backup only writes to a local target, and restoring it is a manual file copy.
About ten million objects per node is the comfortable range in the scaling guide. Each object costs roughly 600 bytes of BoltDB index, and by default every node in a cluster holds the full index, so 10 million objects take about 6 GB on each one. A hundred million is called workable with NVMe and enough RAM to keep the index cached.
One person maintains VaultS3, and the README says so before anything else. He wrote it after MinIO moved features he relied on behind a paid tier. The same README sends readers elsewhere when another tool fits better: Silo to keep an existing MinIO deployment as it is, RustFS or SeaweedFS (both Apache-2.0) when the AGPL is a blocker, Garage for the smallest replicated store.
Contributors sign a CLA on top of the AGPL-3.0, which leaves the author enough copyright to relicense the core. In a section dated 23 August 2026 he commits to keeping the core AGPL and to never moving a free feature behind a paid tier. The paid add-ons, a Kubernetes Operator and a multi-tenant gateway among them, are separate programs in early access with no published price.
Version 5.0.0, released on 7 October 2026, is a one-way upgrade. Encrypted objects, erasure-coded objects and Raft snapshots it writes cannot be read by 4.4.79, and custom IAM policies have to switch to per-action AWS names. The release also fixes holes found in a full code review, including a static-website bucket that answered S3 API calls from anyone. The repository lists 118 releases between v1.0.0 on 25 February 2026 and v5.0.7 on 26 October 2026, four of them on that last day.
