An S3 object store so reliable you can run it outside datacenters by DeuxFleurs
10K+
A simple Docker image for running Garage, a distributed object storage service compatible with Amazon S3. Garage is made by deuxfleurs: https://garagehq.deuxfleurs.fr
08/09/2026
04/08/2026
To enable it you must:
New releases follow the Garage releases from DeuxFleurs.
Their changelog is available here: https://git.deuxfleurs.fr/Deuxfleurs/garage/releases
docker run -d
--name garage
-p 9000:9000
-p 3901:3901
-p 3902:3902
-p 3903:3903
-p 4080:4080
-v /path/to/config:/config
-v /path/to/data:/data
-v /path/to/meta:/meta
-e NODE_IP="192.168.1.10"
-e GATEWAY="192.168.1.10"
-e ADMIN_TOKEN="your-secure-token"
-e WEBUI_ENABLED="true"
waazaafr/garage-s3-simple:latest
| Variable | Default | Required | Description |
|---|---|---|---|
NODE_IP | - | Yes | Public IP address of this node for RPC communication |
GATEWAY | - | Yes | Gateway bind address for S3 API |
ADMIN_TOKEN | - | Yes | Admin API authentication token |
BLOCK_SIZE | 5 | No | Block size in MB |
COMPRESSION_LEVEL | 2 | No | Compression level (0-9) |
RPC_SECRET | Auto-generated | No | RPC secret for cluster communication (64 hex chars) |
REPLICATION_FACTOR | 1 | No | Number of copies for each object |
WEBUI_ENABLED | false | No | true to enable Webui |
CONSISTENCY_MODE | degraded | No | Consistency mode (consistent, degraded, dangerous) |
Important: NODE_IP, GATEWAY, and ADMIN_TOKEN are mandatory. The container will exit with an error if these are not set.
/config – Garage configuration (garage.toml and secrets)/data – Object storage data/meta – Metadata storage9000 – Garage internal RPC3901 – Garage public RPC3902 – S3 web interface3903 – Admin API4080 – For the Webui if you enable itOn container start:
If /config/garage.toml does not exist:
RPC_SECRET is not provided, a random 64-character hex secret is generatedIf /config/garage.toml exists:
NODE_IP, GATEWAY, ADMIN_TOKEN) are updated to match environment variablesRPC_SECRET) are preserved if the variable is not setapi_bind_addr in the [admin] section is never modified to preserve existing configurationThis allows you to persist configuration across restarts while still being able to update specific values via environment variables when needed.
docker run -d
--name garage
-p 9000:9000
-p 3901:3901
-p 3902:3902
-p 3903:3903
-p 4080:4080
-v garage-config:/config
-v garage-data:/data
-v garage-meta:/meta
-e NODE_IP="192.168.1.10"
-e GATEWAY="192.168.1.10"
-e ADMIN_TOKEN="my-secret-token"
-e WEBUI_ENABLED="true"
waazaafr/garage-s3-simple:latest
docker run -d
--name garage
-p 9000:9000
-p 3901:3901
-p 3902:3902
-p 3903:3903
-p 4080:4080
-v garage-config:/config
-v garage-data:/data
-v garage-meta:/meta
-e NODE_IP="192.168.1.10"
-e GATEWAY="192.168.1.10"
-e BLOCK_SIZE="10"
-e COMPRESSION_LEVEL="5"
-e ADMIN_TOKEN="my-admin-token"
-e WEBUI_ENABLED="true"
waazaafr/garage-s3-simple:latest
=======================================================================
Feel free to join me on https://discord.gg/p9xkjEw8ts
If you like this, consider buing me a coffee:
https://buymeacoffee.com/waazaa
If you need an UnRAID license follow this link: https://unraid.net/pricing?via=4c3f80
Content type
Image
Digest
sha256:cb820d57a…
Size
115.3 MB
Last updated
9 days ago
docker pull waazaafr/garage-s3-simple