Setting up the foundations for learning Keycloak: the essential skills you must master, the software and hardware required, the realm concept, and running Keycloak with Docker to start experimenting on localhost.

Welcome to episode 0 of the Learn SSO with Keycloak series! This series takes you from zero to ready to build a centralized identity platform: understanding what Single Sign-On (SSO) is, mastering identity protocols such as OAuth 2.0 and OpenID Connect, and then operating Keycloak as the authentication authority for all your applications. Before we dive into the core material, this episode makes sure your skills, software, and environment are truly ready.
SSO is a simple concept with a huge impact: one authentication, access to many applications. Instead of logging in again on every system, users log in once at the identity center, and that center handles authentication, sessions, and access policies. In this series, that center is Keycloak.
SSO (Single Sign-On) means a user authenticates once at an identity provider, then the token obtained is used to access many applications without logging in again. Keycloak is an open-source identity and access management (IAM) solution from Red Hat that implements this concept with full support for OAuth 2.0, OpenID Connect, SAML 2.0, and LDAP.
The series roadmap consists of 31 episodes across several phases:
Episode 0 is the foundation: make sure your skills and environment are ready before you start touching Keycloak.
Learning Keycloak is not just about clicking buttons in the admin console. You will read configuration, understand tokens, and debug authentication flows. Master these skills at least at an intermediate level:
Have at least the following tools ready on your machine:
| Tool | Purpose |
|---|---|
| JDK 11 or 17 | Running Keycloak (Java 17+ recommended) |
| Docker & Docker Compose | The fastest way to run Keycloak for development |
| PostgreSQL or MySQL | Production database for the Keycloak user store |
| Postman or Insomnia | Testing token endpoints and the Admin REST API |
| OpenSSL | Creating and inspecting certificates |
| Modern browser | Accessing the admin console and account console |
| IDE (VS Code, IntelliJ) | Writing example application code |
| Sample apps (Node.js, Python, Java) | Practice material for integrations in later episodes |
The main focus of this episode is Docker because it's the fastest way to start experimenting. JDK still matters because understanding how Java works helps when you tune the Keycloak JVM in production.
The following specs are comfortable for following the entire series:
For most episodes, a single local machine is enough. Additional VMs are only needed when you reach the deployment and clustering phases.
The fastest way to run Keycloak is via the official image on quay.io. Keycloak 25 and above sets the initial admin through the KC_BOOTSTRAP_ADMIN_USERNAME and KC_BOOTSTRAP_ADMIN_PASSWORD environment variables:
docker run -d \
--name keycloak \
-p 8080:8080 \
-e KC_BOOTSTRAP_ADMIN_USERNAME=admin \
-e KC_BOOTSTRAP_ADMIN_PASSWORD=admin123 \
quay.io/keycloak/keycloak:latest start-devThe docker run command above runs Keycloak in start-dev mode — a convenient development mode that doesn't require HTTPS configuration or an external database. This mode is not for production; it's for learning.
If you prefer docker-compose, create the following file:
services:
keycloak:
image: quay.io/keycloak/keycloak:latest
command: start-dev
ports:
- "8080:8080"
environment:
KC_BOOTSTRAP_ADMIN_USERNAME: admin
KC_BOOTSTRAP_ADMIN_PASSWORD: admin123
volumes:
- keycloak-data:/opt/keycloak/data
volumes:
keycloak-data:Run it with docker compose up -d, then check the logs with docker logs -f keycloak. Keycloak is ready when the logs show a message indicating the server has started.
Once Keycloak is running, the first thing you need to understand is the realm. A realm is an isolation space (namespace) that separates a set of users, clients, roles, and configuration from other realms. Think of a realm as a "tenant" within Keycloak.
Every Keycloak installation has a special realm named master reserved for administration. When building your own applications, the best practice is to create a new realm — don't use the master realm for business applications.
Run the following checks to make sure everything is working:
http://localhost:8080 in your browser. You'll be directed to the Keycloak welcome page.admin and the password you set earlier.master.belajar, then delete it if you don't need it.If the admin console page opens and you can create a realm, your environment is ready for the entire series.
Episode 0 laid the foundation: you understand this series' place across 31 episodes, you've mastered the essential skills list, you've prepared the required software and hardware, and you've run Keycloak with Docker in development mode. You've also been introduced to the realm concept.
Key takeaways:
docker run with start-dev is enough to get started without complicated configuration.In the next episode (episode 1), we step back to understand why SSO is needed — the evolution of authentication, the problem of password fatigue, and the benefits and risks of SSO before you start adopting it in your organization.