This guide will help you deploy Garage as a single-node server and interact with it. This is the recommended first step before moving on to configuring a multi-node cluster.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/deuxfleurs-org/garage/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Before you begin, make sure you have:- A Linux, macOS, or Windows system
- OpenSSL installed (for generating secure credentials)
- Python (optional, for AWS CLI)
Installation
Download Garage
Download the latest Garage binary for your platform:Place the binary in your Verify the installation:
$PATH:You can also use your distribution’s package manager if a binary package is available, or build from source if needed.
Create Configuration File
Generate a configuration file with secure random secrets:Set the configuration file location:
Configure Access Credentials
Set up a default access key and bucket using environment variables (available in Garage v2.3.0+):
Save these credentials securely - you’ll need them to access your bucket!
Start Garage Server
Launch Garage with automatic single-node configuration:The flags do the following:
--single-node: Automatically configures a single-node cluster without data replication--default-bucket: Creates a default access key and bucket using the environment variables
For Garage versions before v2.3.0, these flags are not available. You’ll need to follow the manual configuration steps at the end of this guide.
Using Garage with AWS CLI
Now that Garage is running, let’s upload and download files using the AWS CLI.Install AWS CLI
You need at least AWS CLI v1.29.0 or v2.13.0 to use the
AWS_ENDPOINT_URL environment variable.Configure AWS CLI
Create a configuration file to store your Garage credentials:Load the configuration:
You can create multiple configuration files for different Garage clusters or access keys. Switch between them by sourcing the appropriate file.
Using Docker
If you prefer to run Garage in a container:Alternative S3 Clients
Garage is compatible with many S3 clients:Minio Client
Fast and feature-rich CLI client
s3cmd
Popular command-line S3 client
rclone
Versatile cloud storage manager
Cyberduck
GUI client for macOS and Windows
Troubleshooting
Garage won't start
Garage won't start
Ensure that:
- Your configuration file is readable by the user running Garage
- The
metadata_diranddata_direxist and are writable - No other service is using ports 3900-3903
Cannot connect with AWS CLI
Cannot connect with AWS CLI
Verify that:
- Garage is running (
garage statusshould work) - Your AWS credentials are correctly exported (
echo $AWS_ACCESS_KEY_ID) - The endpoint URL is correct (
http://localhost:3900) - Your AWS CLI version is recent enough (v1.29.0+ or v2.13.0+)
Files are not persisting after reboot
Files are not persisting after reboot
The quick start configuration uses Create these directories and ensure they’re writable by the Garage user.
/tmp for storage, which is cleared on reboot. Update your garage.toml to use permanent directories:Manual Configuration (Pre-v2.3.0)
If you’re using Garage before v2.3.0, the--single-node and --default-bucket flags are not available. Follow these manual steps:
Create Cluster Layout
In a new terminal:Note the node ID from the output, then assign it a zone and capacity:
Next Steps
Multi-Node Cluster
Set up a production-ready multi-node deployment
Configuration Reference
Learn about all configuration options
S3 Compatibility
Check which S3 features are supported
Static Website Hosting
Host static websites from Garage buckets