The broker's default bucket is a local MinIO.
Defaults are http://127.0.0.1:9100, bucket camus, access key camus, secret camus-dev-secret. Override any of them when the bucket is not that.
Why this image is built here
Current community MinIO images are no longer published upstream. deploy/minio builds one from the archived release this repo pins. Compose names it camus-minio and uses it both for the server and for the one-shot that creates the bucket.
docker compose up -d minio create-bucket
The API is on 9100, mapped to 9000 in the container. The console is on 9101. create-bucket waits until MinIO answers, then creates camus if it is missing.
What the broker reads
Leave the variables unset and a broker on the host uses the defaults above. Set them when the endpoint, bucket, or keys differ.
CAMUS_S3_ENDPOINTCAMUS_S3_BUCKETCAMUS_S3_ACCESS_KEYCAMUS_S3_SECRET_KEY
From inside the Camus container
127.0.0.1 inside the container is the container, not the host where MinIO is published. Point CAMUS_S3_ENDPOINT at the host, for example http://host.docker.internal:9100. On a shared Docker network the hostname is the compose service, http://minio:9000, because that name uses the container port rather than the published one.
Connecting does not dial the bucket at process start. The failure shows up when an upload or a read of a sealed object needs it. That is why a one-broker run can look healthy and still lose the seal.