Releases: heyvaldemar/keycloak-traefik-letsencrypt-docker-compose
Release list
v1.7.7
Fixed
- A failed restore was reported as completed.
psqlran without
ON_ERROR_STOP, so a dump that stopped loading half-way still ended in
"Restore completed" and a healthy-looking Keycloak on a partial database; a
failure indropdbleft Keycloak stopped. The restore now stops at the first
failed statement, prints the rollback command for the pre-restore snapshot,
and starts Keycloak again whatever happens. - CI never ran the restore script. The end-to-end test restored with its
own drop/create/load, so the script a person runs on their worst day was not
the one that passed. The test now runskeycloak-restore-database.shitself,
answering its two prompts on stdin, and requires the marker written after the
backup to be gone.
Changed
- The freshness check has its own workflow, Pin Freshness. It ran inside Deployment Verification, whose badge is the one at the top of this README. Across the fleet, nine red runs in ten were a pin one version behind - which the fleet's triage moves within the day - and a reader cannot tell that from a stack that does not boot. The badge now says whether the stack boots. The job itself is unchanged.
v1.7.6
Security
traefik:3.7was rebuilt upstream; the pin moved fromsha256:1c32e7c36820…tosha256:24841fe2de73…. Same version, same tag, a rebuilt base image — the usual shape of a security fix in a base layer.
Upgrading
git pull (or ./update.sh), then docker compose up -d. Containers on a refreshed image are recreated; data volumes and .env are untouched. This release was cut by fleet triage after the deploy job booted the stack on the refreshed images.
Full history in CHANGELOG.md.
v1.7.5
Security
postgres:16was rebuilt upstream; the pin moved fromsha256:f1c3376c26f2…tosha256:a3b7f434b2dc…. Same version, same tag, a rebuilt base image — the usual shape of a security fix in a base layer.
Upgrading
git pull (or ./update.sh), then docker compose up -d. Containers on a refreshed image are recreated; data volumes and .env are untouched. This release was cut by fleet triage after the deploy job booted the stack on the refreshed images.
Full history in CHANGELOG.md.
v1.7.4
Security
traefik:3.7was rebuilt upstream; the pin moved fromsha256:f86a2cab1b5c…tosha256:1c32e7c36820…. Same version, same tag, a rebuilt base image — the usual shape of a security fix in a base layer.
Upgrading
git pull (or ./update.sh), then docker compose up -d. Containers on a refreshed image are recreated; data volumes and .env are untouched. This release was cut by fleet triage after the deploy job booted the stack on the refreshed images.
Full history in CHANGELOG.md.
v1.7.3
Changed
quay.io/keycloak/keycloak:26.7.3moved toquay.io/keycloak/keycloak:26.7.4. The freshness check reported the lag; the deploy job booted the stack on the new image before this landed.
Upgrading
git pull (or ./update.sh), then docker compose up -d. Containers on a refreshed image are recreated; data volumes and .env are untouched. This release was cut by fleet triage after the deploy job booted the stack on the refreshed images.
Full history in CHANGELOG.md.
v1.7.2
Security
quay.io/keycloak/keycloak:26.7.3was rebuilt upstream; the pin moved fromsha256:ff4257d0d64e…tosha256:29be7252db0a…. Same version, same tag, a rebuilt base image — the usual shape of a security fix in a base layer.
Upgrading
git pull (or ./update.sh), then docker compose up -d. Containers on a refreshed image are recreated; data volumes and .env are untouched. This release was cut by fleet triage after the deploy job booted the stack on the refreshed images.
Full history in CHANGELOG.md.
v1.7.1
Changed
update.shnames any new required variable before it moves. An update can add a required variable;docker compose upused to stop on it after the checkout, with the tree already on the new tag. The script now lists the variables that appeared in.env.examplesince your version and refuses, before anything has moved, when a required one is not in your.env. Names only, never values.
Upgrading
git pull (or ./update.sh). Nothing running changes: this release adds or extends the update script and touches no image pin.
Full history in CHANGELOG.md.
v1.7.0
Fixed
- A backup interrupted halfway no longer looks like a good one. The loop
already renamed a failed dump to.failedso nothing would restore from it,
but that rename only runs if the shell lives long enough to reach it. Stop
the container mid-dump and it does not: the truncated file keeps the name a
finished backup would have, and it is the newest one, which is exactly what
the restore script and the end-to-end test pick. Every backup is now written
to<name>.partialand renamed only after the dump succeeds, so the real
name never exists unless the file behind it is complete. Verified by killing
a dump in flight: before, the restore path selected a file that failed
gzip -t; after, it finds nothing to select.
v1.6.0
Added
- A shutdown grace period for PostgreSQL. Docker stops a container with
SIGTERM and ten seconds, then SIGKILL. That default is not always enough:
PostgreSQL has a checkpoint to write, MariaDB has InnoDB to flush, and Redis
saves its dataset on the way out. Killed halfway, the next start does crash
recovery, and a Redis holding another application's file locks leaves them
behind for a person to clear by hand. Sixty seconds now, overridable per
service with<PREFIX>_STOP_GRACE_PERIODin.env. The backup sidecar is
deliberately left alone: its failure mode is a truncated dump file, which a
longer grace period does not fix.
v1.5.0
Added
- Per-image version overrides. Every pin in the
x-imagesblock is
now${<PREFIX>_IMAGE_TAG:-repo:${<PREFIX>_IMAGE_VERSION:-tag@sha256:digest}}.
Set<PREFIX>_IMAGE_VERSIONin.envto run a different version of one
image while every other pin stays as tested (Compose pulls that tag
without a digest), or<PREFIX>_IMAGE_TAGto replace the whole
reference as before. A deployment that sets neither is unchanged. The
freshness job, the Trivy matrix and the fleet digest automation resolve
the nested default before reading a pin. Needs Docker Compose v2.5 or
newer (2022): v2.0 to v2.4 leave the inner${...}unexpanded and
docker compose upfails with an invalid reference instead of
deploying something unexpected. Proposed in #40.
Upgrading
git pull (or ./update.sh). A deployment that sets no _IMAGE_VERSION or _IMAGE_TAG variable renders exactly the same image references as before, so docker compose up -d recreates nothing. Requires Docker Compose v2.5 or newer.
Full history in CHANGELOG.md.