Minio and virtual host style buckets - Setting aliases for .internal hostnames

S3 has moved to make virtual-host style buckets the default with path-style being deprecated. This means the hostname matters when interfacing with S3 compatible storage like Minio.

For a private hostname like minio.internal is there a way to access a bucket using virtual-host style?

Something like bucket.minio.internal? I do know there’s already reserved parts of the private hostnames like for region region.minio.internal which might complicate this.

In docker compose I’m able to do something like this where these all alias to the hostname minio:

networks:
      my-net:
        aliases:
          - bucket1.minio
          - bucket2.minio
          - bucket3.minio

Any ideas for how this might work on fly.io?

Hi @kdevan

It is currently not possible to customize the internal DNS.

If you were to expose minio publicly through the proxy then you would be able to use your DNS provider to route all those virtual hosts to the same fly app.

Since I have minio behind caddy and either accessing it through reverse proxy or just plain internally, I did the hacky thing and I just modify the Host header… Still not sure if I’ll run into some issues here but so far so good… Just mentioning in case it either helps someone or someone can tell me why this is a bad idea hah :slight_smile: