I have been quite keen about AWS S3 professionally from about ever since it debuted. And that is long time ago (2006). This post is more about my S3 at home exercise, which is not even two years old.
Why S3?
I’m not going to detail about that here (the at home part is the point of this blog post), but S3 has offered for two decades now pretty cool object storage. Here are some key aspects of AWS S3:
- cheap (this varies by tier - and I could write another post about just that, but I would rather not)
- very, very highly available
- with SOME consistency guarantees recently added
- since 2020 strong consistency - after PUT any GET/HEAD/LIST returns the object
- header-based put-if-none-match (Aug 2024 - create-only/no overwrite), if-match (Nov 2024, etag based conditional update)
- performant, with some caveats
- if you are not that particular about latency
- if your workload is very parallelizable
This has led to S3 becoming de facto object storage .. API. A lot of players have implemented its API over the last 20 years (I have done subset of it twice in two different companies). And of course, using AWS S3 has been the sensible default, as AWS has pulled off crazy number of 9s with its availability.
S3 at home
Why ‘at home’ as well?
I needed S3 for some things - mainly backups. This list is not exhaustive, but I have used my home S3 at least for:
- Backups of Longhorn volumes in my Kubernetes cluster (primary reason - I have a number of pg installations and other things I would rather not lose)
- Outline wiki backup
- As backend for
- Greptime (metrics, logs)
- Loki (logs)
- ( Mimir - but not using it now )
- ( I planned to use it for Immich photo storage - but it still hasn’t landed into mainline, and I am not that keen to use mountpoint-s3 that e.g. https://github.com/dubrowin/Immich-backed-by-S3 uses )
So, what software have I been using to serve S3 at home?
Start of the journey: Minio at home
I started tinkering with it at home in November 2024, by installing a Minio container. Overall, it was quite nice, although Minio gatekept some of the convenience stuff behind paywall.
Still looking: Garage at home
Minio first lost some more of its features in 2025, and then subsequently its community edition was put to maintenance mode. I looked at couple of alternatives at that time (November 2025):
- SeaweedFS is pretty cool and performant. Unfortunately I heard of some people losing some data with it (admittedly not recently), and its self-healing feature is unfortunately enterprise only (as are the things required to make erasure coding work). After the Minio experience, I was reluctant to try another ‘some stuff behind enterprise license’ paywall.
- RustFS seemed bit more open, seemingly had feature parity, but still raw pre 1.0 at the time - 1.0-some alpha number (their first version was 1.0.0-alpha.1). At the time the project was couple of months old. Now it seems that latest release is actually 1.0.0-beta.5, so at least by version numbers it seems bit closer to GA but better than it was at the time I evaluated it last time around). It seems still aimed to much larger scale than my home though (recommended cluster sizes starting at 4 nodes, with 128 GB of RAM each).
- Ceph is de facto thing for open-source (object) storage, but also very complex. I don’t have that much storage at home, so it felt like overkill at the time.
All of these felt bit complex (and/or too large scale) for my home. Then I looked at Garage.
- It seems to have sufficient feature set
- It has been used to provide S3 SaaS for years
- It has pretty decent admin API, S3 API implementation subset, and documentation.
So I went with it, and it was pretty good.. for awhile.
The end(?): Versity S3 Gateway at home
Only real annoyance for me about Garage is that it does not store the objects as is in the filesystem, and as I use restic to take backups of my computers, it does not wind up deduplicated as well as it could be. I also like browsing content of buckets, and using various CLIs or FUSE mount feels awkward.
Sometime in March this year, I became aware of Versity S3 Gateway. So in April I tested it, and subsequently switched to it.
Why? Really only one reason: It provides S3 API on top of existing filesystem. It makes restic backups trivial and efficient, and facilitates use of e.g. zfs dedup/compression/whatever at will.
I don’t even care that much about performance, and all of these projects probably quote some crazy performance numbers anyway. But I’m quite happy where I am now, as far as S3 at home goes. We will see how long that lasts :-)