Garage S3 thay thế MinIO là lựa chọn đang được cộng đồng self-hosting chú ý sau khi MinIO cắt bỏ hàng loạt tính năng quản trị khỏi bản community từ bản minio.RELEASE.2025-04-22T22-12-26Z. Nếu bạn đang tìm giải pháp object storage tương thích S3, mã nguồn mở thực sự — bài này hướng dẫn cài đặt Garage trên Ubuntu từ đầu đến khi có bucket hoạt động.
Tại Sao Garage S3 Là Lựa Chọn Thay Thế MinIO Tốt Hơn?
Garage được phát triển bởi một hiệp hội phi lợi nhuận, viết bằng Rust, Apache 2.0 license — không có enterprise tier, không có tính năng bị khóa sau paywall. Trong khi MinIO đang đi theo hướng thương mại hóa rõ ràng, Garage kiên định với mục tiêu ban đầu: một object storage đơn giản, đáng tin cậy cho mọi quy mô.

Điểm nổi bật so với MinIO:
- Binary đơn, không dependency ngoài — cài xong chạy ngay
- Chạy được trên phần cứng yếu: Raspberry Pi, Synology NAS, VPS 1GB RAM
- Tương thích S3 hoàn toàn — rclone, Restic, Duplicati, Nextcloud, AWS CLI đều dùng được ngay
- Hỗ trợ triển khai phân tán đa node, dữ liệu tự động replicate
- Không bao giờ bị “bait and switch” vì dự án phi lợi nhuận, không có động cơ thương mại
Yêu Cầu Hệ Thống cài đặt s3 storage garage
- Ubuntu 22.04 hoặc 24.04
- RAM tối thiểu 1GB (khuyến nghị 2GB+)
- Ổ đĩa đã mount tại đường dẫn cố định, ví dụ /data
- Mở firewall các port: 3900 (RPC), 3901 (S3 API), 3902 (web), 3903 (admin)
Hướng Dẫn Cài Đặt Garage S3 Thay Thế MinIO Trên Ubuntu
Bước 1: Tải Binary Garage
|
1 2 3 4 5 6 7 8 9 10 |
# Tải binary Garage v1.0.1 # Kiểm tra phiên bản mới nhất tại garagehq.deuxfleurs.fr wget https://garagehq.deuxfleurs.fr/_releases/v1.0.1/x86_64-unknown-linux-musl/garage -O /tmp/garage sudo mv /tmp/garage /usr/local/bin/garage sudo chmod +x /usr/local/bin/garage # Kiểm tra garage --version |
Bước 2: Tạo User và Thư Mục
|
1 2 3 4 5 6 7 8 9 |
sudo useradd --system --no-create-home --shell /bin/false garage sudo mkdir -p /data/garage/data sudo mkdir -p /data/garage/meta sudo mkdir -p /etc/garage sudo chown -R garage:garage /data/garage sudo chown -R garage:garage /etc/garage |
Bước 3: Tạo File Cấu Hình
|
1 2 |
sudo nano /etc/garage/garage.toml |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
rpc_bind_addr = "0.0.0.0:3900" rpc_secret = "your_generated_secret_here" metadata_dir = "/data/garage/meta" data_dir = "/data/garage/data" [s3_api] api_bind_addr = "0.0.0.0:3901" s3_region = "us-east-1" [s3_web] bind_addr = "0.0.0.0:3902" root_domain = ".web.example.com" index = "index.html" [admin] api_bind_addr = "0.0.0.0:3903" |
|
1 2 |
openssl rand -hex 32 |
Bước 4: Tạo Systemd Service
|
1 2 |
sudo nano /etc/systemd/system/garage.service |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
[Unit] Description=Garage S3-compatible object storage After=network.target [Service] Type=simple User=garage Group=garage ExecStart=/usr/local/bin/garage -c /etc/garage/garage.toml server Restart=on-failure RestartSec=5 LimitNOFILE=65536 NoNewPrivileges=true PrivateTmp=true ProtectSystem=strict ReadWritePaths=/data/garage [Install] WantedBy=multi-user.target |
|
1 2 3 4 |
sudo systemctl daemon-reload sudo systemctl enable --now garage sudo systemctl status garage |
Bước 5: Khởi Tạo Node
Garage cần biết topology của cluster trước khi dùng được. Ngay cả với single-node cũng bắt buộc thực hiện bước này — bỏ qua sẽ không tạo được bucket.
|
1 2 3 |
# Lấy node ID sudo -u garage garage -c /etc/garage/garage.toml node id |
Output có dạng a1b2c3d4…@<ip>:3900. Lấy phần hex trước dấu @, sau đó:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# Gán zone và dung lượng cho node (đơn vị: GB) sudo -u garage garage -c /etc/garage/garage.toml layout assign \ <node-id> --zone dc1 --capacity 100 # Xem layout đề xuất sudo -u garage garage -c /etc/garage/garage.toml layout show # Áp dụng layout sudo -u garage garage -c /etc/garage/garage.toml layout apply --version 1 # Kiểm tra trạng thái cluster sudo -u garage garage -c /etc/garage/garage.toml status |
Tạo Bucket và Access Key
|
1 2 3 4 5 6 7 8 9 10 |
# Tạo bucket sudo -u garage garage -c /etc/garage/garage.toml bucket create my-bucket # Tạo access key — lưu lại Key ID và Secret key được in ra màn hình sudo -u garage garage -c /etc/garage/garage.toml key create my-key # Cấp quyền read/write cho key trên bucket sudo -u garage garage -c /etc/garage/garage.toml bucket allow \ my-bucket --read --write --key my-key |
Kiểm Tra Kết Nối Với AWS CLI và rclone
Dùng AWS CLI
|
1 2 3 4 5 6 7 8 9 10 11 12 |
sudo apt install awscli -y aws configure set aws_access_key_id <Key-ID> aws configure set aws_secret_access_key <Secret-Key> aws configure set default.region us-east-1 # Upload thử file aws s3 cp /etc/hostname s3://my-bucket/test.txt --endpoint-url http://127.0.0.1:3901 # Liệt kê object trong bucket aws s3 ls s3://my-bucket/ --endpoint-url http://127.0.0.1:3901 |
Dùng rclone
|
1 2 3 4 5 6 7 8 9 10 11 12 |
sudo apt install rclone -y rclone config create garage s3 \ provider Other \ access_key_id <Key-ID> \ secret_access_key <Secret-Key> \ endpoint http://127.0.0.1:3901 \ acl private # Sync thư mục backup lên Garage rclone sync /var/backups garage:my-bucket/backups/ |
Tổng Kết
Chỉ cần 15–20 phút, bạn đã có hệ thống Garage S3 thay thế MinIO chạy hoàn toàn trên hạ tầng của mình — không phụ thuộc cloud, không mất phí theo request, không lo bị cắt tính năng. Đây là giải pháp đặc biệt phù hợp cho home lab, Synology NAS hoặc VPS nhỏ. Bài tiếp theo tôi sẽ hướng dẫn cụ thể cách cài đặt Garage trên NAS Synology.
Vì sao Garage S3 đáng để thử?
| Tiêu chí | Garage S3 |
|---|---|
| Mô hình triển khai | Self-hosted |
| Chi phí vận hành | Chủ yếu là phần cứng / VPS của bạn |
| Phí theo request | Không có |
| Phụ thuộc cloud bên thứ ba | Không |
| Phù hợp lưu trữ object kiểu S3 | Có |
| Tính linh hoạt khi triển khai | Cao |
| Khả năng dùng trong home lab / NAS / VPS nhỏ | Rất phù hợp |
Tài liệu chính thức của Garage tại garagehq.deuxfleurs.fr — nếu bạn muốn tìm hiểu thêm về cấu hình multi-node hay các tùy chọn nâng cao.
Xem thêm các bài viết kỹ thuật tại tungle.blog và chuyên mục Thủ thuật.
Bạn đang dùng MinIO hay đã chuyển sang Garage rồi? Setup của bạn đang chạy trên phần cứng gì? Để lại bình luận bên dưới, tôi rất muốn biết!