Selfhosted S3 compatible recommendations?

thirdBreakfast@lemmy.world to Selfhosted@lemmy.world – 38 points –

Has anyone got some experience/advice for choosing between the options? It seems like they are:

My usecase is just to have a local single instance for testing apps against. I prefer to spin stuff up in Docker on the homelab.

18

Garage is trivial to get up and running and it’s more lightweight than minio nowadays.

That's what annoyed me about minio. Started super crazy simple to set up, but I missed two updates and came back to AWS levels of mandatory configuration. Ffs I chose you because you were simple, not because I needed to replace s3

I went through this too, except I got pissed off and found a fips compliant image running the last version prior to their disk format changes. Gosh that royally pissed me off.

Garage definitely seems better suited for selfhosters and small setups, Minio is just so large and complex with specific requirements now.

I set garage via docker and it was not impossibly hard.

Main problem is that there isn't an admin panel and you can't login to the docker container via docker exec, so you have to write some python (or other language of your choice) to send requests to the API port to:

  1. Set the layout of your server
  2. Create an user
  3. Create a bucket
  4. Assign that bucket to your user

You can use docker exec with garage docker image.

I'm on mobile but I think you just need something like: docker exec containerid ./garage stats

This is correct, I already installed the minio cli, but when I came back and read this, I tried it out and yes, once garage is running in the container, you can

alias garage="docker exec -ti  /garage"

so you can do the cli things like garage bucket info test-bucket or whatever. The --help for the garage command is pretty great, which is good since they don't write it up much in the docs.

Ah maybe I was missing the ./ , it said garage not found on path (on mobile, can't try)

Which apps are you testing?

I set up minio s3 for testing myself, but found that most of my docker services doesn't really support it. So I went back to good old folders

One I'm writing. I use the host file system (as I have a strong preference for simple) for it's storage, but I'm interested in adding Litestream for replicating the database onto AWS.

I've used minio briefly, and I've never used any other self hosted object storage. In the context of spinning it up with docker, it's pretty easy. The difficult part in my project was that I wanted some buckets predefined. The docker image doesn't provide this functionality directly, so I had to spin up an adjacent container with the minio cli that would create the buckets automatically every time I spun up minio.

But for your use case you would manage bucket creation manually, from the UI. It seems straight forward enough, and I don't have complaints. I think it would work for your use case, but I can't say its any worse or better than alternatives.

Thanks, I ended up going with Garage, but it has the same issue. I assumed I could just specify some buckets with their keys in the docker-compose or garage.toml, but no - they had to be done through the api or command line.

If you need S3-compliant storage for testing and development, you can use an S3 mock server. I've tried the following for use in web development and CI environments, they are lightweight and configurable:

There is also Localstack. I found this one to be a bit more complex than the ones above and ended up not sticking with it.

Garage is the simplest of the three imo.

I've only used it in a cluster, but it should be even simpler for one instance