An S3 object store so reliable you can run it outside datacenters by DeuxFleurs
10K+
A ready-to-run Docker image for Garage, the lightweight, S3-compatible distributed object storage made by Deuxfleurs.
Set three variables, start the container: the Garage configuration is generated for you.
garage.toml generation from environment variabless3 alias for aws s3)linux/amd64 and linux/arm64| Tag | Garage version |
|---|---|
latest | latest release |
2.4.1 | v2.4.1 |
New image releases follow the Garage releases from Deuxfleurs.
services:
garage:
image: waazaafr/garage-s3-simple:latest
container_name: garage
restart: unless-stopped
ports:
- "9000:9000" # S3 API
- "3901:3901" # RPC
- "3902:3902" # S3 web hosting
- "3903:3903" # Admin API
- "4080:4080" # Web UI (optional)
volumes:
- ./garage/config:/config
- ./garage/data:/data
- ./garage/meta:/meta
environment:
NODE_IP: "192.168.1.10"
ADMIN_TOKEN: "your-secure-token"
WEBUI_ENABLED: "true"
docker run -d \
--name garage \
--restart unless-stopped \
-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 ADMIN_TOKEN="your-secure-token" \
-e WEBUI_ENABLED="true" \
waazaafr/garage-s3-simple:latest
| Variable | Default | Required | Description |
|---|---|---|---|
NODE_IP | — | ✅ | IP address of this node, advertised to other nodes for RPC |
ADMIN_TOKEN | — | ✅ | Token for the Admin API (and the web UI) |
GATEWAY | 0.0.0.0 | Bind address of the S3 API and the Admin API | |
RPC_SECRET | auto-generated | RPC secret shared by all nodes of a cluster (64 hex characters) | |
REPLICATION_FACTOR | 1 | Number of copies of each object | |
CONSISTENCY_MODE | degraded | consistent, degraded or dangerous | |
BLOCK_SIZE | 5 | Block size, in MB | |
COMPRESSION_LEVEL | 2 | Compression level | |
WEBUI_ENABLED | false | true to start the web UI on port 4080 | |
META_SNAPSHOTS_ENABLE | false | true to enable automatic metadata snapshots | |
META_SNAPSHOTS_DIR | /data/snapshots_meta | Where metadata snapshots are stored | |
META_SNAPSHOTS_INTERVAL | 24 | Interval between metadata snapshots, in hours |
⚠️ The container exits with an error if
NODE_IPorADMIN_TOKENis not set.
| Port | Service |
|---|---|
9000 | S3 API |
3901 | RPC (communication between Garage nodes) |
3902 | S3 web hosting (static websites) |
3903 | Admin API |
4080 | Web UI (only if WEBUI_ENABLED=true) |
| Path | Content |
|---|---|
/config | Garage configuration (garage.toml, including secrets) |
/data | Object data |
/meta | Metadata |
First start — /config/garage.toml does not exist:
RPC_SECRET is not set, a random secret is generated.Next starts — /config/garage.toml already exists:
NODE_IP, GATEWAY and ADMIN_TOKEN are always re-applied from the environment.RPC_SECRET) is kept.You can therefore keep your configuration across restarts and still change specific values through environment variables.
docker run -d \
--name garage \
-p 9000:9000 -p 3901:3901 -p 3902:3902 -p 3903:3903 \
-v garage-config:/config \
-v garage-data:/data \
-v garage-meta:/meta \
-e NODE_IP="192.168.1.10" \
-e ADMIN_TOKEN="my-admin-token" \
-e BLOCK_SIZE="10" \
-e COMPRESSION_LEVEL="5" \
-e META_SNAPSHOTS_ENABLE="true" \
waazaafr/garage-s3-simple:latest
Garage release notes: git.deuxfleurs.fr/Deuxfleurs/garage/releases
v2.3.0 → v2.4.1.WEBUI_ENABLED=true and publish port 4080.Content type
Image
Digest
sha256:cb820d57a…
Size
115.3 MB
Last updated
about 1 month ago
docker pull waazaafr/garage-s3-simple