Categories
self-hosted object-storage backup-storage static-hosting distributed-storage geo-redundant s3-compatibleStars
Forks
Watchers
Developer links
Garage
Picture your object storage scattered across a home server, a friend's rack, and a cheap VPS in another country, still answering S3 requests like nothing happened: that is exactly the deployment Garage was built for. Every object is replicated to three zones, so losing a node, a disk, or an entire site degrades the cluster instead of destroying your data. Applications talk to it with the standard S3 API: create buckets, upload objects in multiple parts, list and copy them, and hand out access keys that are scoped per bucket. A separate web endpoint serves static websites straight from buckets with CORS support, which covers personal sites, documentation, and release downloads without another server in the chain. The whole system ships as one dependency-free binary that asks for about a gigabyte of RAM and any x86-64 or ARM CPU from the last decade, second-hand hardware very much included. There is deliberately no consensus protocol to babysit: nodes gossip their cluster layout, tolerate 200-millisecond links, and keep serving reads while parts of the fleet are unreachable. Deuxfleurs runs it in production for their own hosting, and common pairings include restic or rclone backup targets, Matrix media storage, and Nix binary caches. Running on a dedicated VPS on RepoCloud with guaranteed CPU, RAM, and SSD, full root SSH access, and a browser serial console. AGPL-3.0 licensed.
Benefits
- Survives losing whole sites
- With replication factor three spread across zones, Garage keeps data available through node failures, dead disks, and full site outages, degrading gracefully instead of going offline.
- Runs on second-hand hardware
- A single dependency-free binary needs roughly 1 GB of RAM and any recent x86-64 or ARM CPU, so old desktops and spare boards become storage nodes.
- S3 compatible from day one
- Garage implements the Amazon S3 API, so existing SDKs, backup tools, and applications store objects without adapters, plugins, or rewritten integration code.
- Static sites without extra servers
- The built-in web endpoint publishes buckets as static websites with CORS headers, covering documentation, personal pages, and download mirrors from the same cluster that stores everything else.
Features
- Three-zone object replication
- Every object is copied to three nodes in different zones; the cluster tolerates two node failures and keeps serving reads while parts are unreachable.
- S3 API with multipart uploads
- Garage implements bucket and object operations, multipart uploads, object listing, and copies, with path-style and vhost-style URLs plus per-key bucket permissions.
- Static website endpoint
- A dedicated web endpoint serves bucket contents as static websites with CORS headers, index documents, and custom error pages for public hosting.
- Single dependency-free binary
- One static binary with no runtime dependencies deploys on any Linux distribution, from datacenter servers to ARM boards, and upgrades by simple file replacement.
- Admin API for clusters
- An HTTP admin API manages cluster layout, node health, buckets, and access keys, so operators can script provisioning and inspect the fleet programmatically.