explaingit

deuxfleurs-org/garage

3,767RustAudience · ops devopsComplexity · 4/5LicenseSetup · hard

TLDR

A lightweight self-hosted file storage server that speaks the S3 API, designed to spread data across multiple physical sites so that losing one location does not take your storage offline, any existing S3 client works without code changes.

Mindmap

mindmap
  root((Garage))
    What it does
      S3-compatible storage
      Geo-distributed
      Multi-site resilience
    Tech stack
      Rust
      AGPLv3
    Use cases
      Replace cloud S3
      Home lab storage
      Small org backups
    Audience
      Self-hosters
      Ops teams
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Replace Amazon S3 with your own geo-distributed cluster that any existing S3 client connects to without code changes

USE CASE 2

Run resilient file storage across servers in two or three physical locations so an outage at one site does not lose data

USE CASE 3

Give a small organization object storage with no cloud vendor dependency and no per-GB billing

Tech stack

Rust

Getting it running

Difficulty · hard Time to first run · 1h+

Needs multiple machines or VMs in different network locations to get the geo-distribution resilience that Garage is built for.

Use and run freely, but if you modify Garage and offer it as a network service you must publish your changes under the same AGPLv3 license.

In plain English

Garage is a file storage server designed for people who want to run their own cloud storage across multiple physical locations. It implements the S3 API, which is the interface that Amazon's S3 storage service uses. This compatibility means software that already knows how to talk to Amazon S3 can be pointed at a Garage cluster instead, without any code changes on the client side. The core design goal is geographic distribution at a small scale. Rather than running all storage nodes in one data center, Garage is built to spread them across different physical sites. If one site becomes unreachable, the others continue serving data. This makes it practical for small organizations that want storage resilient to single-location failures but cannot afford large commercial infrastructure. The project is built by Deuxfleurs, a French experimental self-hosting collective, which has run Garage in its own production environment since the first release in 2020. The emphasis throughout is on being lightweight and straightforward to operate, targeting what the project itself describes as small-to-medium scale deployments. Garage is written in Rust, a programming language valued for memory safety and performance. It is released under the AGPLv3 license, a copyleft open source license that requires anyone who runs a modified version of the software as a network service to publish their changes. The main source repository is hosted on the Deuxfleurs team's own Git server, this GitHub page is a mirror. Documentation and a quick-start guide are available on the project website.

Copy-paste prompts

Prompt 1
Walk me through setting up a 3-node Garage cluster across two physical locations and configuring an S3 client to point at it instead of AWS.
Prompt 2
How does Garage handle a site outage? Explain what happens to reads and writes when one location goes offline.
Prompt 3
Write a script to back up a local directory to a Garage cluster using the AWS CLI configured with a custom endpoint URL.
Prompt 4
What are the practical differences between Garage and MinIO for a small team wanting self-hosted S3-compatible storage?
Prompt 5
How do I set Garage's replication factor and zone assignments so every file is stored in at least two separate physical sites?
Open on GitHub → Explain another repo

← deuxfleurs-org on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.