Mastodon
Hosted Garage · Object Storage · Canadian Hosted Updated Oct 2026

Garage S3, run for you.

Garage is the open-source S3 engine Storm runs in production and contributes to. Storm Buckets gives you a Garage-backed endpoint in Canada without running the cluster yourself.

✓ Hosted and Operated in Canada ✓ Public Garage Release ✓ Fixes Merged Upstream CAD Pricing

Garage is built by Deuxfleurs and describes itself as "fast to deploy, safe to operate". We agree, and we run it every day. This page covers what Storm handles for you, what we have fixed upstream, and what hosted Garage does not do.

Why Garage

Fixes we sent upstream

Status checked 2026-10-21 on git.deuxfleurs.fr.

Status Change What it fixed
Merged 2026-05-12 #1450 The permissive CORS preflight answer now includes Access-Control-Allow-Headers, so browsers accept it.
Merged 2026-06-17 #1469 Bulk DeleteObjects reports a missing key as deleted, as AWS does. Shipped in v2.4.0.
Merged 2026-07-20 #1492 Browser uploads through presigned POST accept UTF-8 filenames.
Open #1565 Static website requests drop query parameters. We tested the AWS behaviour and reported it on the issue.

Self-hosted Garage, or ours

Job Self-hosted Storm Buckets
TLS Garage's S3 port speaks plain HTTP. You put a proxy in front. Every endpoint is HTTPS.
Admin API The admin token lives wherever you put it. Admin calls run through the Storm Pulse agent on the node, never over the internet.
Keys garage key create and garage bucket allow. Dashboard keys at Read Only, Read / Write or Admin, scoped per bucket.
Metadata Turn on metadata_fsync and schedule snapshots yourself. metadata_fsync on, with scheduled metadata snapshots.
Upgrades You track releases and roll them. We track releases and upgrade the node.
Hardware Yours to buy, watch and replace. Leased from a Canadian provider in Montreal.
Cost Your hardware and your time. $9 CAD per 1 TB block, per month.

Running your own? Our hardening dispatch ranks every control we use, from S tier to theatre.

Where your objects sit

  • RAIDZ3-backed, in a professional data centre. Your bucket sits on RAIDZ3-backed storage in a Leaseweb Canada facility in Montreal. Our where your data lives pages name the provider, the building and who owns both.
  • One zone, for now. Standard storage rides through disk failures; a whole-node loss is what a second copy is for, so keep one of anything you cannot afford to lose (Terms of Service). A three-zone class, priced separately, is on the roadmap.
  • Object lock or versioning. Garage implements neither. Keep history in your backup software, such as restic.
  • Every S3 call. Check the operations you rely on against Garage's S3 compatibility reference and our list of what returns NotImplemented.

Coming from MinIO, or your own Garage

Keys do not carry over: Garage mints its own key IDs, so create new keys in the dashboard first. Then the copy is rclone, dry run first, checked after.

rclone · into Storm reversible by design
Add your old cluster and Storm as remotes. The region is montreal-1, with path-style addressing. $ rclone config
See what would move. $ rclone copy old:bucket storm:bucket --dry-run
Copy it. $ rclone copy old:bucket storm:bucket --progress
Check both ends match before you cut over. $ rclone check old:bucket storm:bucket

The full walkthrough, including the settings that make a bucket look migrated when it is not, is in Migrating from MinIO to Garage. The rclone values for Storm are in the rclone guide.

From the Dispatch

Put Garage to work, without the pager.

Start with a 1 TB block on montreal-1 and add capacity as you grow. Flat CAD pricing, with uploads and API requests included.

Hosted and Operated in Canada. Pay by Interac e-Transfer.

Read the pricing details →

We review every request for storage and resources by hand. We maintain strict safety standards. See our Acceptable Use Policy.

Production
$9 CAD /TB/mo

1 TB of capacity. Add more in 1 TB blocks.

  • ✓ Stack blocks as you grow
  • ✓ Buckets and keys are not billed units
  • ✓ Custom domains + static hosting
  • ✓ Audit logs
Create your account →

Frequently asked

Is this the same Garage I can run myself?

Yes. Storm runs the public Garage release. Fixes Storm writes go upstream to Garage, not into a private fork.

Can I bring my existing Garage or MinIO keys?

No. Garage mints its own key IDs, so you create new keys in the dashboard and copy your data across with rclone.

Does Storm replicate my data across zones?

Not yet. Standard storage is one zone on RAIDZ3-backed disks in a Leaseweb Canada data centre in Montreal, so it rides through disk failures; a whole-node loss is what a second copy is for. A three-zone class is on the roadmap.

How much does it cost?

One 1 TB block at $9 CAD per month, stacked as you grow. Uploads and API requests are included.

Can I leave?

Yes. It is the same S3 API, so the rclone command that copied your data in copies it back out, to your own Garage or anywhere else.