feat: replace MinIO with Garage for truly open-source S3 storage

This commit is contained in:
aa_humaaan
2026-03-03 18:20:10 +05:30
parent a5443847c6
commit 4a05013475
8 changed files with 77 additions and 112 deletions

View File

@@ -138,7 +138,7 @@ services:
### <20> Storage & Infrastructure ### <20> Storage & Infrastructure
*Alternatives to **AWS S3**, **Dropbox**, and **Salesforce*** *Alternatives to **AWS S3**, **Dropbox**, and **Salesforce***
- **[MinIO](https://github.com/minio/minio)** - High-performance, S3-compatible object storage. - **[Garage](https://github.com/deuxfleurs/garage)** - An open-source distributed object storage service tailored for self-hosting.
- **[Odoo](https://github.com/odoo/odoo)** - All-in-one ERP suite (Salesforce alternative). - **[Odoo](https://github.com/odoo/odoo)** - All-in-one ERP suite (Salesforce alternative).
- **[Nextcloud](https://github.com/nextcloud/server)** - Content collaboration platform (Dropbox/Google Drive alternative). - **[Nextcloud](https://github.com/nextcloud/server)** - Content collaboration platform (Dropbox/Google Drive alternative).
- [🔗 **Infrastructure Stacks on AltStack**](https://thealtstack.com/category/infrastructure) - [🔗 **Infrastructure Stacks on AltStack**](https://thealtstack.com/category/infrastructure)

1
assets/logos/garage.svg Normal file
View File

@@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" id="Calque_1" x="0" y="0" version="1.1" viewBox="-0.25 81.12 512.53 392.3"><style>.st0{fill:#ffd952}.st2{fill:#45c8ff}.st3{fill:#ff9329}.st4{fill:#4e4e4e}</style><g id="g1663" transform="translate(-88.608 -87.995)scale(1.70995)"><path id="path6" d="M242 189.5c-2.8.2-5.7-.1-8.4-.9l-104.9-28.3c-2.8-.8-5.5-2-7.9-3.7z"/><path id="path24-3-6" d="M201.2 98.9c-4.5 0-8.9 1-13.1 2.8l-133.3 59c-2.5 1-3.6 3.9-2.6 6.3 0 0 0 .1.1.1 0 .2.1.4.2.5L73.8 210h18.6l-2.6-14.7c-.2-1.2-2.1-9.6-4-15.7l62.4 19.5c.8 3.9 1.9 7.5 3.2 10.9h101.2c1.1-3.4 2-7 2.6-10.9l62.3-19.4c-1.8 6.1-3.7 14.4-3.9 15.6L311 210h18.6l21.2-41.9.2-.4.2-.5v-.1c.2-.5.2-1 .2-1.6.1-2.1-1.1-4-3-4.8l-133.3-59c-4.5-1.9-9.2-2.8-13.9-2.8" class="st0"/><path id="path24-3" d="M201.2 126.8c-4.5 0-8.9 1-13.1 2.8l-133.3 59c-2.5 1-3.6 3.9-2.6 6.3 0 0 0 .1.1.1 0 .2.1.4.2.5l11.6 22.9h24.7c-.8-3.3-1.8-7.3-2.9-11.1l35.4 11.1h161l35.3-11c-1.1 3.7-2.1 7.7-2.9 11h24.7l11.4-22.5.2-.4.2-.5v-.1c.2-.5.2-1 .2-1.6.1-2.1-1.1-4-3-4.8l-133.3-59c-4.5-1.8-9.2-2.7-13.9-2.7" style="fill:#49c8fa"/><path id="path24" d="M351.2 221.8c0 .5 0 1.1-.2 1.6v.1l-.2.5-.2.4-32.3 63.8c-4.5 8.9-12.7 8.6-11.4-.4l6.5-36.3c.2-1.2 2.1-9.6 4-15.6l-62.3 19.4c-9.8 63.5-93.3 64.6-107 0l-62.4-19.5c1.8 6.1 3.8 14.5 4 15.7l6.5 36.3c1.4 9-6.9 9.2-11.4.4L52.3 224c-.1-.2-.2-.3-.2-.5-1.1-2.4 0-5.3 2.4-6.4 0 0 .1 0 .1-.1l133.3-59c8.5-3.8 18.3-3.8 26.8 0L348 217c2.2.8 3.4 2.8 3.2 4.8" class="st0"/><path id="path26" d="m244.1 233 57.6-23.2c1.3-.5 1.9-1.9 1.4-3.2-.2-.6-.7-1.1-1.4-1.4-6.7-2.8-15-6-23.1-9.4-1.5-.6-15.6 9.5-16.9 10.5l-24.7 20c-6.1 5-.9 9.9 7.1 6.7" class="st2"/><circle id="circle28" cx="202.3" cy="255.6" r="51.4" class="st2" transform="rotate(-45.001 202.325 255.64)"/><path id="path6-0" d="M242 189.5c-2.8.2-5.7-.1-8.4-.9l-104.9-28.3c-2.8-.8-5.5-2-7.9-3.7z"/><path id="path24-3-6-9" d="M201.2 98.9c-4.5 0-8.9 1-13.1 2.8l-133.3 59c-2.5 1-3.6 3.9-2.6 6.3 0 0 0 .1.1.1 0 .2.1.4.2.5L73.8 210h18.6l-2.6-14.7c-.2-1.2-2.1-9.6-4-15.7l62.4 19.5c.8 3.9 1.9 7.5 3.2 10.9h101.2c1.1-3.4 2-7 2.6-10.9l62.3-19.4c-1.8 6.1-3.7 14.4-3.9 15.6L311 210h18.6l21.2-41.9.2-.4.2-.5v-.1c.2-.5.2-1 .2-1.6.1-2.1-1.1-4-3-4.8l-133.3-59c-4.5-1.9-9.2-2.8-13.9-2.8" class="st3"/><path id="path24-3-2" d="M201.2 126.8c-4.5 0-8.9 1-13.1 2.8l-133.3 59c-2.5 1-3.6 3.9-2.6 6.3 0 0 0 .1.1.1 0 .2.1.4.2.5l11.6 22.9h24.7c-.8-3.3-1.8-7.3-2.9-11.1l35.4 11.1h161l35.3-11c-1.1 3.7-2.1 7.7-2.9 11h24.7l11.4-22.5.2-.4.2-.5v-.1c.2-.5.2-1 .2-1.6.1-2.1-1.1-4-3-4.8l-133.3-59c-4.5-1.8-9.2-2.7-13.9-2.7" class="st4"/><path id="path24-0" d="M351.2 221.8c0 .5 0 1.1-.2 1.6v.1l-.2.5-.2.4-32.3 63.8c-4.5 8.9-12.7 8.6-11.4-.4l6.5-36.3c.2-1.2 2.1-9.6 4-15.6l-62.3 19.4c-9.8 63.5-93.3 64.6-107 0l-62.4-19.5c1.8 6.1 3.8 14.5 4 15.7l6.5 36.3c1.4 9-6.9 9.2-11.4.4L52.3 224c-.1-.2-.2-.3-.2-.5-1.1-2.4 0-5.3 2.4-6.4 0 0 .1 0 .1-.1l133.3-59c8.5-3.8 18.3-3.8 26.8 0L348 217c2.2.8 3.4 2.8 3.2 4.8" class="st3"/><path id="path26-2" d="m244.1 233 57.6-23.2c1.3-.5 1.9-1.9 1.4-3.2-.2-.6-.7-1.1-1.4-1.4-6.7-2.8-15-6-23.1-9.4-1.5-.6-15.6 9.5-16.9 10.5l-24.7 20c-6.1 5-.9 9.9 7.1 6.7" class="st4"/><circle id="circle28-3" cx="202.3" cy="255.6" r="51.4" class="st4" transform="rotate(-45.001 202.325 255.64)"/></g></svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

@@ -1 +0,0 @@
<svg fill="#ffffff" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>MinIO</title><path d="M13.2072.006c-.6216-.0478-1.2.1943-1.6211.582a2.15 2.15 0 0 0-.0938 3.0352l3.4082 3.5507a3.042 3.042 0 0 1-.664 4.6875l-.463.2383V7.2853a15.4198 15.4198 0 0 0-8.0174 10.4862v.0176l6.5487-3.3281v7.621L13.7794 24V13.6817l.8965-.4629a4.4432 4.4432 0 0 0 1.2207-7.0292l-3.371-3.5254a.7489.7489 0 0 1 .037-1.0547.7522.7522 0 0 1 1.0567.0371l.4668.4863-.006.0059 4.0704 4.2441a.0566.0566 0 0 0 .082 0 .06.06 0 0 0 0-.0703l-3.1406-5.1425-.1484.1425.1484-.1445C14.4945.3926 13.8287.0538 13.2072.006Zm-.9024 9.8652v2.9941l-4.1523 2.1484a13.9787 13.9787 0 0 1 2.7676-3.9277 14.1784 14.1784 0 0 1 1.3847-1.2148z"/></svg>

Before

Width:  |  Height:  |  Size: 724 B

View File

@@ -655,16 +655,30 @@
"website": "https://aws.amazon.com/s3" "website": "https://aws.amazon.com/s3"
}, },
{ {
"slug": "minio", "slug": "garage",
"name": "MinIO (Community Fork)", "name": "Garage",
"category": "Cloud Infrastructure", "category": "Cloud Infrastructure",
"is_open_source": true, "is_open_source": true,
"description": "High-performance, S3-compatible object storage for AI and enterprise data.", "github_repo": "deuxfleurs/garage",
"logo_url": "/logos/minio.svg", "stars": 3500,
"alternatives": [], "website": "https://garagehq.deuxfleurs.fr/",
"tags": [], "description": "An open-source distributed object storage service tailored for self-hosting.",
"pros": [
"True open-source (AGPLv3)",
"Lightweight and runs anywhere",
"Built-in replication and cluster management"
],
"cons": [
"Lacks some enterprise features of MinIO"
],
"last_commit": "2024-03-01T00:00:00Z",
"language": "Rust",
"license": "AGPLv3", "license": "AGPLv3",
"website": "https://min.io" "logo_url": "/logos/garage.svg",
"deployment": {
"type": "docker-compose",
"local_path": "./.docker-deploy/garage"
}
}, },
{ {
"slug": "zendesk", "slug": "zendesk",

View File

@@ -1303,31 +1303,30 @@
] ]
}, },
{ {
"slug": "minio", "slug": "garage",
"name": "MinIO (Community Fork)", "name": "Garage",
"category": "Cloud Infrastructure", "category": "Cloud Infrastructure",
"is_open_source": true, "is_open_source": true,
"github_repo": "pgsty/minio", "github_repo": "deuxfleurs/garage",
"stars": 45000, "stars": 3500,
"website": "https://min.io", "website": "https://garagehq.deuxfleurs.fr/",
"description": "High-performance, S3-compatible object storage for AI and enterprise data.", "description": "An open-source distributed object storage service tailored for self-hosting.",
"pros": [ "pros": [
"S3-compatible API — drop-in replacement for AWS S3", "True open-source (AGPLv3)",
"Extremely fast object storage optimized for AI/ML workloads", "Lightweight and runs anywhere",
"Kubernetes-native with operator support" "Built-in replication and cluster management"
], ],
"cons": [ "cons": [
"AGPL license can be strict" "Lacks some enterprise features of MinIO"
], ],
"last_commit": "2026-02-09T14:00:00Z", "last_commit": "2024-03-01T00:00:00Z",
"language": "Go", "language": "Rust",
"license": "AGPLv3", "license": "AGPLv3",
"logo_url": "/logos/minio.svg", "logo_url": "/logos/garage.svg",
"deployment": { "deployment": {
"type": "docker-compose", "type": "docker-compose",
"local_path": "./.docker-deploy/minio" "local_path": "./.docker-deploy/garage"
}, }
"referral_url": "https://m.do.co/c/2ed27757a361"
}, },
{ {
"slug": "zendesk", "slug": "zendesk",

View File

@@ -0,0 +1,37 @@
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 🚀 BUILT & MAINTAINED BY THE ALTSTACK
# 🌍 https://thealtstack.com
# 💡 Open-source deployment templates for modern self-hosting.
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# Garage: Open-source distributed object storage (S3-compatible)
# Perfect replacement for MinIO with true AGPL open-source licensing.
version: '3.8'
services:
garage:
image: dxflrs/garage:v1.0.1
container_name: garage
restart: unless-stopped
ports:
- "3900:3900" # S3 API
- "3901:3901" # Web API
- "3902:3902" # Admin API
- "3903:3903" # Cluster peering (rpc)
environment:
- GARAGE_RPC_BIND_ADDR=[::]:3903
- GARAGE_RPC_PUBLIC_ADDR=127.0.0.1:3903
- GARAGE_RPC_SECRET=YOUR_SECURE_RPC_SECRET_HERE
- GARAGE_S3_API_BIND_ADDR=[::]:3900
- GARAGE_S3_WEB_BIND_ADDR=[::]:3901
- GARAGE_ADMIN_API_BIND_ADDR=[::]:3902
- GARAGE_DATA_DIR=/var/lib/garage/data
- GARAGE_META_DIR=/var/lib/garage/meta
volumes:
- garage_data:/var/lib/garage/data
- garage_meta:/var/lib/garage/meta
volumes:
garage_data:
garage_meta:

View File

@@ -1,25 +0,0 @@
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
# 🚀 BUILT & MAINTAINED BY THE ALTSTACK
# 🌍 https://thealtstack.com
# 💡 Open-source deployment templates for modern self-hosting.
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
services:
minio:
image: pgsty/minio:latest
container_name: minio
restart: unless-stopped
ports:
- "9000:9000"
- "9090:9090"
command: server /data --console-address ":9090"
environment:
- MINIO_ROOT_USER=minioadmin
- MINIO_ROOT_PASSWORD=minioadmin
volumes:
- minio_data:/data
volumes:
minio_data:

View File

@@ -1,60 +0,0 @@
#!/bin/bash
# 🚀 Auto-generated by The AltStack
# https://thealtstack.com
echo "🔵 Starting AltStack Deployment..."
# 1. Check/Install Docker
if ! command -v docker &> /dev/null; then
echo "📦 Docker not found. Installing..."
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh
rm get-docker.sh
echo "✅ Docker installed."
else
echo "✅ Docker is already installed."
fi
# 2. Setup Directory
APP_DIR="minio-deploy"
mkdir -p $APP_DIR
cd $APP_DIR
echo "📂 Created directory: $APP_DIR"
# 3. Create docker-compose.yml
echo "📄 Writing configuration..."
cat << 'INNER_EOF' > docker-compose.yml
# -------------------------------------------------------------------------
# 🚀 Created and distributed by The AltStack
# 🌍 https://thealtstack.com
# -------------------------------------------------------------------------
version: '3.8'
services:
minio:
image: minio/minio:latest
container_name: minio
restart: unless-stopped
ports:
- "9000:9000"
- "9090:9090"
command: server /data --console-address ":9090"
environment:
- MINIO_ROOT_USER=minioadmin
- MINIO_ROOT_PASSWORD=minioadmin
volumes:
- minio_data:/data
volumes:
minio_data:
INNER_EOF
# 4. Start Services
echo "🚀 Starting services..."
docker compose up -d
echo ""
echo "✅ Deployment Complete!"
echo "👉 Your minio stack is running."