The notes and comments still spoke of a MinIO user and of asxpio's
bucket. The photos are in datacenterbingo-photos on Garage, read with a
read-only S3 key.
Assisted-by: Claude:fable-5-2
The storage stack replaces MinIO, abandoned upstream, with Garage. Point
the app at garage:3900.
Garage only accepts keys in its own format, so hash the existing
BINGO_S3_* secrets into it the way storage's bootstrap does. The secrets
stay as they are; a pair already in Garage's format is used unchanged.
Assisted-by: Claude:fable-5-2
The runner mounts a persistent nix-store volume over /nix. The current
nixos/nix image makes /etc/nix/nix.conf a symlink into /nix/store, and
the volume does not hold that path, so the link dangles and appending
to it fails before checkout: "/etc/nix/nix.conf: No such file or
directory".
Pass the settings in NIX_CONFIG instead. Without a config file Nix also
falls back to build-users-group = nixbld, which the container lacks, so
set it empty and turn the sandbox off, as the image config does.
Assisted-by: Claude:opus-5-5
The bingo card ran inside the asxpio container, dispatched by Host.
Give the public site its own repo, image and deploy so it can be
released and mirrored independently of asxp.io.
Editing stays in the asxp.io admin, which keeps owning the schema and
the photo pipeline; this app only reads the shared bingo tables and the
bingo/ photos, through a read-only DB role and MinIO user. Tests load a
snapshot of the asxpio-built schema (test/schema.sql).
Assisted-by: Claude:opus-5