Quick start
There are two ways to install an extension. Pick whichever fits your setup.
Option A — Manual install
- 1
Find an extension
Browse the registry and open the extension you want. On the Versions tab, each release has a Download button and its SHA-256 digest for verification.
- 2
Drop the JAR in and build
Place the downloaded JAR in
/opt/keycloak/providers/and runkc.sh build. That's it — no registry connection at runtime.
Option B — Docker integration
For containerised setups. The registry publishes a minimal OCI image for every extension version, so you can pull the JAR straight into your Dockerfile without downloading anything manually.
- 1
Find an extension
Browse the registry. On each extension's Overview tab, the Install section shows the exact Dockerfile snippet to copy, with the correct image reference and version already filled in.
- 2
Paste into your Dockerfile
Copy the snippet from the extension page and use it as your Dockerfile. To add more extensions, duplicate the
COPY --from=line, one per extension, before theRUN kc.sh buildstep.FROM quay.io/keycloak/keycloak AS builder COPY --from=kcer.dev/providers/home-idp-discovery:v26.1.0 /providers/ /opt/keycloak/providers/ RUN /opt/keycloak/bin/kc.sh build FROM quay.io/keycloak/keycloak COPY --from=builder /opt/keycloak/ /opt/keycloak/ ENTRYPOINT ["/opt/keycloak/bin/kc.sh"] CMD ["start", "--optimized"] - 3
Build and run
Run
docker build .. Extensions are baked in at build time. Your running container has no dependency on the registry. To upgrade an extension, change the image tag in theCOPY --from=line and rebuild.