Describe the bug
deploy/compose/compose.yml:14 hardcodes the S3 endpoint on the relay service:
BUZZ_S3_ENDPOINT: http://minio:9000
Every other S3 setting is env-driven and documented in .env.example — BUZZ_S3_ACCESS_KEY, BUZZ_S3_SECRET_KEY, BUZZ_S3_BUCKET, BUZZ_S3_ADDRESSING_STYLE — so setting BUZZ_S3_ENDPOINT there looks like it should work. It is silently ignored, and the relay keeps using the bundled MinIO.
The failure is quiet: the stack comes up, Media storage connected is logged, and uploads succeed — into MinIO on local disk rather than the configured bucket. Nothing indicates the endpoint was overridden.
This matters because the Helm chart directs production deployments the other way (deploy/charts/buzz/values.yaml):
Production: point endpoint/bucket at an external S3-compatible service and supply credentials. Quickstart (minio.enabled: true): the chart runs an in-cluster, eval-only MinIO.
So compose users following the same guidance get local MinIO regardless of what they configure.
Steps to reproduce
- Set
BUZZ_S3_ENDPOINT=https://<account>.r2.cloudflarestorage.com in deploy/compose/.env.
docker compose up -d.
docker exec <relay> printenv BUZZ_S3_ENDPOINT → http://minio:9000.
- Uploads land in the bundled MinIO volume, not the configured bucket.
Expected behavior
BUZZ_S3_ENDPOINT honours .env like the other BUZZ_S3_* values, defaulting to the bundled MinIO when unset:
BUZZ_S3_ENDPOINT: ${BUZZ_S3_ENDPOINT:-http://minio:9000}
Ideally with the variable added to .env.example alongside the other S3 settings.
Version and platform
- Buzz version: relay
ghcr.io/block/buzz:sha-63496cc; also present on main as of 2026-07-30
- OS: Ubuntu 24.04, Docker Compose
Logs / additional context
Workaround is a compose override that also has to reset the MinIO health dependency, since the relay depends_on it:
services:
relay:
environment:
BUZZ_S3_ENDPOINT: ${BUZZ_S3_ENDPOINT:?}
depends_on: !reset
postgres: {condition: service_healthy}
redis: {condition: service_healthy}
minio: {profiles: ["disabled"]}
minio-init: {profiles: ["disabled"]}
Possibly related to #3273 (hardcoded path-style S3 addressing), which is the same class of compose-level S3 config being fixed rather than configurable.
Describe the bug
deploy/compose/compose.yml:14hardcodes the S3 endpoint on the relay service:Every other S3 setting is env-driven and documented in
.env.example—BUZZ_S3_ACCESS_KEY,BUZZ_S3_SECRET_KEY,BUZZ_S3_BUCKET,BUZZ_S3_ADDRESSING_STYLE— so settingBUZZ_S3_ENDPOINTthere looks like it should work. It is silently ignored, and the relay keeps using the bundled MinIO.The failure is quiet: the stack comes up,
Media storage connectedis logged, and uploads succeed — into MinIO on local disk rather than the configured bucket. Nothing indicates the endpoint was overridden.This matters because the Helm chart directs production deployments the other way (
deploy/charts/buzz/values.yaml):So compose users following the same guidance get local MinIO regardless of what they configure.
Steps to reproduce
BUZZ_S3_ENDPOINT=https://<account>.r2.cloudflarestorage.comindeploy/compose/.env.docker compose up -d.docker exec <relay> printenv BUZZ_S3_ENDPOINT→http://minio:9000.Expected behavior
BUZZ_S3_ENDPOINThonours.envlike the otherBUZZ_S3_*values, defaulting to the bundled MinIO when unset:Ideally with the variable added to
.env.examplealongside the other S3 settings.Version and platform
ghcr.io/block/buzz:sha-63496cc; also present onmainas of 2026-07-30Logs / additional context
Workaround is a compose override that also has to reset the MinIO health dependency, since the relay
depends_onit:Possibly related to #3273 (hardcoded path-style S3 addressing), which is the same class of compose-level S3 config being fixed rather than configurable.