One binary. Two nodes. Zero hassle.
Interactive wizard that deploys a two-node dev/test Garage S3-compatible object storage cluster on Ubuntu/Debian nodes using Docker.
[Your Machine]
└── garage-installer binary
├── SSH to Node 1
│ ├── Preflight checks
│ ├── Docker setup
│ └── Deploy container
├── SSH to Node 2
│ ├── Preflight checks
│ ├── Docker setup
│ └── Deploy container
└── Configure Cluster
├── Connect nodes
├── Apply layout
└── Verify health
NOTE: binaries for the installer aren’t yet available. This practically means that you must pull the source code, make sure that Deno is installed, and run from source. Instructions for installing Deno can be found below in the Development > Prerequisites.
git clone https://github.com/miha42-github/garage-installer.git
cd garage-installer
deno task dev
# Linux
wget https://github.com/miha42-github/garage-installer/releases/latest/download/garage-installer-linux-x64
chmod +x garage-installer-linux-x64
# macOS
wget https://github.com/miha42-github/garage-installer/releases/latest/download/garage-installer-macos-x64
chmod +x garage-installer-macos-x64
# On first run, macOS may block execution. If so, run:
# xattr -d com.apple.quarantine ./garage-installer-macos-x64
# Windows
# Download from: https://github.com/miha42-github/garage-installer/releases/latest/download/garage-installer-windows-x64.exe
macOS Users: If you see “cannot be opened because the developer cannot be verified”, see the macOS Security Warning section in the troubleshooting guide.
WARNING: Not yet available documentation in this section is not correct.
./garage-installer-linux-x64
That’s it! The wizard will guide you through:
brew install awscli or pip install awsclidocker group (non-root Docker access)Note: Docker and Docker Compose require manual installation on the remote nodes before running the installer. The installer cannot install them automatically as this requires sudo privileges with interactive password entry. See the Installing Prerequisites section in the troubleshooting guide for detailed instructions.
The installer will automatically:
On each node, the installer will:
dxflrs/garage:v2.1.0 (default, configurable)~/garage/
├── docker-compose.yml
├── garage.toml
└── [Docker volumes for data/metadata]
Docker containers:
garage - Garage S3 server (non-root, host networking)Ports used:
After successful installation, you’ll have access to Garage’s S3 API.
💡 For complete integration examples, see the examples/ directory (AWS CLI and Node.js).
# Configure (credentials provided by installer)
aws configure set aws_access_key_id YOUR_ACCESS_KEY
aws configure set aws_secret_access_key YOUR_SECRET_KEY
aws configure set default.region garage
aws configure set default.s3.addressing_style path
# Create bucket and upload
aws s3 mb s3://my-bucket --endpoint-url http://NODE_IP:3900
echo "Hello Garage" > test.txt
aws s3 cp test.txt s3://my-bucket/ --endpoint-url http://NODE_IP:3900
📚 See AWS CLI Configuration Guide for complete setup instructions.
# Check cluster status
ssh user@node1 "docker exec garage /garage status"
# View logs
ssh user@node1 "docker logs garage"
# Restart cluster
ssh user@node1 "cd ~/garage && docker compose restart"
📚 For day-2 operations, see the Troubleshooting Guide.
Common issues and quick fixes:
# Check SSH access
ssh user@hostname
# Verify key permissions
chmod 600 ~/.ssh/id_rsa
# Add user to docker group (requires re-login)
sudo usermod -aG docker $USER
# Find what's using the port
sudo ss -tlnp | grep 3900
# Test connectivity
ping node2-hostname
# Check firewall (allow port 3901 for RPC)
sudo ufw allow 3901/tcp
📚 For comprehensive troubleshooting, see the Troubleshooting Guide.
Deno 1.40+ is required to build from source.
Install Deno:
# macOS / Linux
curl -fsSL https://deno.land/install.sh | sh
# Windows (PowerShell)
irm https://deno.land/install.ps1 | iex
# Or via package managers:
# macOS: brew install deno
# Linux: snap install deno
# Windows: choco install deno
See https://deno.land/manual/getting_started/installation for more options.
git clone https://github.com/miha42-github/garage-installer.git
cd garage-installer
deno task dev
# Linux binary
deno task compile-linux
# macOS binary
deno task compile-macos
# Windows binary
deno task compile-windows
# All platforms
deno task build-all
Binaries will be in dist/ directory.
The installer follows security best practices:
Network Security:
After installing your cluster:
📚 See FUTURES.md for the complete development roadmap and planned features.
Remember: This installer creates a two-node cluster for development and testing. For production, deploy at least 3 nodes in different physical locations for proper fault tolerance.
Garage itself is licensed under AGPLv3.
Remember: This installer creates a two-node cluster. It’s not production-ready. For production, deploy at least 3 nodes in different physical locations.
But for learning, testing, or development? This is a quick way to get started with Garage.