Aumont.fr

Garage a fast and minimal S3 server for home.

5 min read.
Aug 2025
  1. Home
  2. › Posts
  3. › Garage a fast and minimal S3 server for home.

In the last decade, Amazon has established S3 - Simple Storage Service - as the de facto standard for object storage. Even other hyperscaler competitors are simply copying or ensuring that their object protocols are compatible with AWS S3.
Few months ago I’ve discovered garage , this is a pretty nice alternative to the most famous Minio to create a S3 servers at home.
Garage is one of the tool of an assocation Deux-fleurs - I’m almost sure this is a reference to “Twoflower” a character from Terry Pratchett book.

I don’t know in other country but this kind of association are common in France The goal is to return to a truly decentralized internet, free from hyperscalers, by offering solutions that go as far as self-hosting.
I am not part of an association, but I am part of the same movement. For more than 10 years, I have been trying to do without hyperscaler services as much as possible and to host everything I can myself.

Off topic: From a more professional point of view, this trend has been coming back into the spotlight in recent years with the emergence of various certifications such as “CloudSouverain” and the desire of certain decision-makers to favor national solutions and players.

Deux-fleurs are creating a somes tools in order to be independant from the GAFAM and other Big-Tech.
This is why they host the repo on their own gitea , and you only find a clone of this repo on github.

Regarding S3 at home, I’ve allready played with Minion in the past, but I’ve found it was a bit to bloated for my personnal usage. To much option that I don’t need.

Garage-s3 installation is pretty simple and footpring seems minimal. It is written in Rust and the community is helpfull.

Features : #

It uses the standard S3 AK / SK to access to the data. You can create user have the possibility to define permissions. Of course you can also create public-buckets.

But unlike Minio, Garage does not provide (until now) any advanced features :

  • No S3 versionning
    • As consequence : No object-lock
  • No lifecycle
  • No standard IAM / Bucket Policies, but instead there's a system that simply allows you to authorize a pair of AK/SK keys to put/get/delete in a bucket or even be autonomous to create new buckets.
  • However you can still run a S3 bucket for an static HTTP website.

But the upside is that performance are meaningful and it is pretty simple to deploy and operate.
With Garage you can protect your data on by replicating on multiple location with multiple instances deployed.
There is no Erasure Coding data is fully replicated between differents nodes. 1 objects pushed on site A will be replicated on other nodes.
Solution is designed to be hosted at home and communicate over Internet.You can use VPN IPv6 or VPN Mesh to merge nodes together.

Setting up Garage : #

On FreeBSD installation is of course straightforward and regulary up to date. It runs perfecty on very small machine.

pkg install garage-s3 , I’m not the package maintainer (I still haven't taken the time to learn how to build a package on FreeBSD), but I quickly notify the maintainer as soon as an update is available so I can get the latest version. Thanks to him 😄

Default configuration is also pretty simple :
Create/Edit your config file /usr/local/etc/garage.toml

There is basically 2 directories to configure :

  • One for the Metadata (Garage documentation suggests to use a SSD/NVME to store the Metadata)
  • One for the Data (Payload)

warning Storing data with S3.
Once uploaded with S3 your DATA won’t be readable through the filesystem in a POSIX way. The only way to access you data will be by the S3 http endpoint.
It means that you also have to protect/backup your metadata if you do not want get unreadable DATA.
Since garage v1.0 it is possible to snapshot (and create a backup of your METADATA).

No more metadata = data lost.

My Setup : #

In my setup this is simple I use

/mnt/meta
/mnt/data

Currently I use a NAS to protect my DATA and running Garage as jail, basically TrueNAS Core

Yeah I now it won’t be upgraded anymore, I have a plan to migrate from TrueNas to FreeBSD Standard but that’s another topic). For now It works flawlessly and I don’t have time to do the migration.

/mnt/data is a ZFS mount point outside of the jail mounted in my jail at start.
/mnt/meta is local to the jail which run on a SSD.

Garage-Nas.png
I doing snapshot and backup of Metadata at Pcloud. The size remains very small. I currently have 60 GB of data, and metadata is about 702M.

I’m lazy so I won’t write a “how to”. #

The documentation is clear and simple enough to be followed, so I won t reword it.

note Bastille with S3 does not stream :(
Bastille is pretty convenant tool for jail management but this is not possible to backup directly through a stream (|).
Which means if you want to push your archives backup into another location like (S3) you have to be done locally to a fuse/POSIX device and then pushed to another endpoint in a secund step.
I’m currently thinging/working on a tool (Git repo will be available soon), in order to backup with rclone directly a jail and keeping the compatibility with Bastille for restore operation.

In production (I mean in a business environnement): #

I don’t know company that runs garage in “large” Scale for now, but for home / small business it is definitely more easy to operate than Minio.

Also I know that entreprise grade product that ships S3 have more efficient way to protect data that only replication which is obviously a hindrance when you want to protect large amounts of data.
But with garage you can easily replicate over Internet on large distance.

It is perfect for hosting a web site backup or if you want to deploy a fast S3 endpoint without spending time of administration.
I encourage you to deploy it, test it, join the community, or report bugs on the product's Git repository.

#self-hosting #S3

Mathieu Aumont - 2026

Posts | Tags | About

Last build : Mar 2026