Sign inSign up

bsantanna/keycloak

By bsantanna

•Updated 4 days ago

Keycloak 26, pre-built for PostgreSQL with health and metrics on. Starts in seconds.

Image
0

700

bsantanna/keycloak repository overview

⁠keycloak

Identity, ready in seconds.

bsantanna/keycloak is Keycloak 26, pre-built for PostgreSQL with health checks and metrics switched on. The build step happens here, ahead of time, so your container skips it and starts straight away.

⁠Run it

docker run -d --name keycloak --network my-network -p 8080:8080 -p 9000:9000 \
  -e KC_DB_URL=jdbc:postgresql://postgres:5432/keycloak \
  -e KC_DB_USERNAME=keycloak \
  -e KC_DB_PASSWORD=change-me \
  -e KC_BOOTSTRAP_ADMIN_USERNAME=admin \
  -e KC_BOOTSTRAP_ADMIN_PASSWORD=change-me \
  bsantanna/keycloak

Open the admin console at http://localhost:8080/admin⁠.

⁠Configuration

VariablePurpose
KC_DB_URLJDBC URL of your PostgreSQL database.
KC_DB_USERNAME, KC_DB_PASSWORDDatabase credentials.
KC_BOOTSTRAP_ADMIN_USERNAME, KC_BOOTSTRAP_ADMIN_PASSWORDThe first admin account, created on first start.
KC_HOSTNAMEPublic URL, e.g. https://auth.example.com. Recommended in production.

Every other Keycloak option⁠ works too, as a KC_* variable or a command-line flag.

⁠Endpoints

PortPathPurpose
8080/Keycloak over HTTP. Put TLS in front, for example with bsantanna/nginx-ssl-proxy⁠.
9000/health/ready, /health/liveHealth checks for your orchestrator.
9000/metricsPrometheus metrics.

⁠Defaults

The container runs start --optimized --http-enabled=true --hostname-strict=false. Override them by passing your own arguments to kc.sh.

⁠Tags

TagMeaning
latestThe newest release.
YYYY.MM.XXA fixed release, e.g. 2026.11.01. Pin this in production.

Multi-architecture: linux/amd64 and linux/arm64.

⁠Source

github.com/bsantanna/docker-images⁠

Tag summary

Content type

Image

Digest

sha256:e1cefb831…

Size

255.2 MB

Last updated

4 days ago

docker pull bsantanna/keycloak