minio/minio and minio/mc no longer exist on Docker Hub or Quay, so
docker compose pull fails and, with script_stop, ends every deploy
before anything is applied.
Ignore pull failures. Postgres is still updated; MinIO and its init
container run from the copies cached on the host.
Assisted-by: Claude:fable-5-2
There was no way to share a file by link: both buckets are private and
the bootstrap forces anonymous access off on every run.
Add a bucket named public whose objects anyone can GET by key, with no
anonymous listing or writes, and an optional user that may only put and
delete there, so a leaked uploader key reads nothing and reaches no
other bucket.
Assisted-by: Claude:fable-5-2
The public bingo site is moving out of the asxpio container and only
needs to read the bingo tables and the bingo/ photos. Give it a role
limited to SELECT on those two tables (with read-only transactions by
default) and a MinIO user limited to GetObject under
asxpio-invoices/bingo/, instead of reusing asxpio's read-write
credentials.
Both steps are skipped while the BINGO_* secrets are unset, so this
deploys safely before they exist. Tables missing on a fresh install
are granted on the next deploy.
Assisted-by: Claude:opus-5