Docker Compose dev setup: Garage + automated bootstrap #250

Open
raucao wants to merge 5 commits from chore/docker-compose-setup into master
pull from: chore/docker-compose-setup
Owner

Summary

Two related Docker Compose dev-setup improvements.

1. Switch dev object storage from MinIO to Garage

MinIO no longer publishes prebuilt community images — quay.io/minio/minio returns 401 and Docker Hub minio/minio is gone (404) — so a fresh docker compose up cannot pull the image. Replace it with a single-node Garage instance that auto-creates the remotestorage bucket and a dev-key1 access key on first start, and point liquor-cabinet at it (region garage).

2. Automate first-run LDAP and database setup

Previously the documented flow started web (with Solid Queue in Puma) before the databases existed, and required manually creating the 389ds back-end and seeding LDAP/databases, so the first docker compose up failed with Could not find table 'solid_queue_processes'. Now:

  • an ldap-init one-shot service creates the 389ds back-end if it is missing;
  • a web entrypoint seeds LDAP and the databases on first start and runs db:prepare on later boots.

Testing

  • docker compose config is valid.
  • Fresh docker compose down -v + docker compose up --build bootstraps end to end; Solid Queue starts without errors.
  • A second up is idempotent (back-end creation skipped, no re-seed).

Merge order

Please merge the fix/seeds-active-job PR first — the bootstrap runs db:setup, which needs that seed fix.

## Summary Two related Docker Compose dev-setup improvements. ### 1. Switch dev object storage from MinIO to Garage MinIO no longer publishes prebuilt community images — `quay.io/minio/minio` returns 401 and Docker Hub `minio/minio` is gone (404) — so a fresh `docker compose up` cannot pull the image. Replace it with a single-node Garage instance that auto-creates the `remotestorage` bucket and a `dev-key1` access key on first start, and point liquor-cabinet at it (region `garage`). ### 2. Automate first-run LDAP and database setup Previously the documented flow started `web` (with Solid Queue in Puma) before the databases existed, and required manually creating the 389ds back-end and seeding LDAP/databases, so the first `docker compose up` failed with `Could not find table 'solid_queue_processes'`. Now: - an `ldap-init` one-shot service creates the 389ds back-end if it is missing; - a `web` entrypoint seeds LDAP and the databases on first start and runs `db:prepare` on later boots. ## Testing - `docker compose config` is valid. - Fresh `docker compose down -v` + `docker compose up --build` bootstraps end to end; Solid Queue starts without errors. - A second `up` is idempotent (back-end creation skipped, no re-seed). ## Merge order Please merge the `fix/seeds-active-job` PR first — the bootstrap runs `db:setup`, which needs that seed fix.
raucao force-pushed chore/docker-compose-setup from 1f55a70096 to a1423cb625 2026-10-06 13:38:46 +00:00 Compare
raucao added the kredits-2dev environment labels 2026-10-06 13:49:43 +00:00
raucao requested review from greg 2026-10-06 13:49:47 +00:00
raucao added 2 commits 2026-10-06 13:52:39 +00:00
The documented flow started web (with Solid Queue in Puma) before the
databases existed, and required manually creating the 389ds back-end
and seeding the LDAP directory and databases. Automate it:

- add an ldap-init one-shot service that creates the 389ds back-end if
  it does not exist
- add a web entrypoint that seeds LDAP and the databases on first start,
  and runs db:prepare on later boots
- update README and AGENTS accordingly, including the reset steps
Switch dev object storage from MinIO to Garage
CI / Test (pull_request) Successful in 43s
6279699c11
MinIO no longer publishes prebuilt community images (quay.io returns
401, Docker Hub 404), so the dev setup cannot pull the image.

Use a single-node Garage instance instead, which auto-creates the
remotestorage bucket and a dev-key1 access key on first start, and
point liquor-cabinet at it.
raucao force-pushed chore/docker-compose-setup from a1423cb625 to 6279699c11 2026-10-06 13:52:39 +00:00 Compare
raucao added 1 commit 2026-10-06 17:37:37 +00:00
Fix Liquor Cabinet performance in dev
CI / Test (pull_request) Failing after 46s
695977172f
Can't handle enough requests without ThreadPool, so once you hit the
limit, requests take 5s+ (having to wait for the keepalive timeout)
raucao added 2 commits 2026-10-06 17:37:51 +00:00
Allow remote access to dev services
CI / Test (pull_request) Successful in 46s
Release Drafter / Update release notes draft (pull_request) Successful in 19s
bc37df52a0
Reviewed-on: #253
All checks were successful
CI / Test (pull_request) Successful in 45s
Required
Details
The branch requires signed commits but this merge will not be signed
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin chore/docker-compose-setup:chore/docker-compose-setup
git checkout chore/docker-compose-setup
Sign in to join this conversation.