Export a Keycloak realm by using the version 20.0.1

This blog post is about how export an example development realm using the Keycloak in version 20.0.1. I wanted to ensure that the export contains all information including users. You can find the relevant information in Keycloak documentation ‘Exporting a realm to a file.’. I did some demo configurations in the new version and I can’t reuse my older exported examples from Keycloak.

Step 1: Define the needed environment variables

export KEYCLOAK_ADMIN=admin
export KEYCLOAK_PORT="8080:8080"
export KEYCLOAK_IMAGE="quay.io/keycloak/keycloak:20.0.1"
export KEYCLOAK_MODE="start-dev"
export SOURCE_VOLUME=$(pwd)
export KEYCLOAK_URL=http://localhost:8080

Step 2: Start the Keycloak container in the developer mode



Step 3: Connect to second session to container

Open a second terminal and execute following command:

docker ps

  • Example output:
CONTAINER ID   IMAGE                              COMMAND                  CREATED          STATUS          PORTS                              NAMES
96bc9b5aea5e   quay.io/keycloak/keycloak:20.0.1   "/opt/keycloak/bin/k…"   50 minutes ago   Up 50 minutes>8080/tcp, 8443/tcp   sharp_elbakyan

Step 4: Open third terminal session

Access the running Keycloak container in an interactive mode.

export CONTAINER_ID=aa7f1d717b9e
docker exec -it $CONTAINER_ID bash

  • Example output:

Step 5: Navigate to the Keycloak bin folder

cd ./opt/keycloak/bin

Step 6: Search for kc.sh file

ls kc.sh | grep kc.s*

  • Example output:

Step 7. Export the realm to a file

With USERS_STRATEGY=realm_file we export all need configurations also the passwords.

export REALM_NAME=your-realmname
export EXPORT_FILE_NAME=your-realmname.json
export USERS_STRATEGY=realm_file
./kc.sh export --realm $REALM_NAME --file ./$EXPORT_FILE_NAME --users $USERS_STRATEGY

Step 8. Verify the output of the exported file


Step 9. Copy the file to your local computer or just select the cat output and save it to a JSON file.


It’s awesome, how good it works to export and reuse example realms for Keycloak. It worked perfectly in my situation. Maybe I can update the bash automation related to the Keycloak REST API change made since version 18.

I hope this was useful for you and let’s see what’s next?



#keycloak, #docker, #export

One thought on “Export a Keycloak realm by using the version 20.0.1

Add yours

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Blog at WordPress.com.

Up ↑

%d bloggers like this: