mrkeyoor.com_
Tue 01 Sept 17:43 UTC
Self-Hostedevaluationupdated 26 Aug 2026

keycloak review

Keycloak is a self-hosted identity server that handles sign-in, user accounts, identity federation, and authorization for applications and services. It lets a team centralize authentication instead of teaching every application to store passwords and implement login flows.

+99stars / 7d
Verdict

Our Keycloak JavaScript workspace installed 904 packages in 77 seconds and built in 48 seconds, but that clean result covers only js/, not a production identity cluster. Use Keycloak when several applications justify a dedicated identity platform and an experienced team can own its database, proxy, upgrades, and security patches. A managed provider is the safer decision when nobody is explicitly responsible for authentication infrastructure.

We ran it

Lab card: what happened when we ran keycloakScreenshot of keycloak (www.keycloak.org)
Install✓ · 77s904 packages · 596 MB
Build✓ · 48s
Testsn/ano test script
Repo12847 files~1,320,855 lines of source · 116.8 MB · 20 CI workflows · tests dir

Answers from our run

Does keycloak build from source?

Dependencies installed in 77 seconds (904 packages), and the build succeeded in 48 seconds. We cloned commit b9b70f9 into a clean Debian container with 3 CPUs and no project-specific setup.

Does keycloak have tests you can run?

Not through a standard command: the project exposes no test script or target that our harness could run.

Who should not use keycloak?

Teams without an identity operator: the production guide requires TLS, a public hostname, a production database, proxy decisions, and usually multiple instances.

What are the alternatives to keycloak?

Authentik, ZITADEL, ORY Kratos. Our Keycloak JavaScript workspace installed 904 packages in 77 seconds and built in 48 seconds, but that clean result covers only js/, not a production identity cluster.

Setup3/5The js workspace builds cleanly; production identity needs more
Docs5/5Separate guides cover trials, production, upgrades, and testing
Community5/536,423 stars with current pushes and active issue triage
Maturity5/5Long-running Apache project with regular security releases

Discussed on

  1. hnKeycloak: Open-source identity and access management455 points
  2. hnKeycloak: Open-Source Identity and Access Management388 points
  3. hnKeycloak – Open-source identity and access management interview286 points
  4. hnKeycloak SSO with Docker Compose and Nginx222 points
  5. hnAn analysis of the Keycloak authentication system189 points

Who it’s for

Organizations with several applications that need one identity and single sign-on system.
Platform teams prepared to own an identity database, TLS, upgrades, backups, and incident response.
Developers who need OpenID Connect, SAML, federation, passkeys, or fine-grained authorization in one server.
Regulated environments that need identity data and policy inside infrastructure they control.

Who it’s NOT for

Teams without an identity operator: the production guide requires TLS, a public hostname, a production database, proxy decisions, and usually multiple instances.
Projects that only need a small login widget and managed user store: Keycloak is a separate Java service with its own database and upgrade lifecycle.
Operators who cannot patch quickly: release 26.7.2 lists seven security fixes, including account-takeover and secret-disclosure flaws.
Deployments that treat start-dev as production-ready: the README labels it as the getting-started command, while the production guide specifies additional controls.
Contributors expecting one root Java check from our measurement: our run covered the js/ pnpm workspace, not the server build or full server test suite.

Setup reality

Our sandbox entered the js/ workspace, installed 904 pnpm packages in 77 seconds, and used 596 MB on disk. Its build succeeded in 48 seconds. No test script or target was available there, so tests were skipped rather than passed.

The README's start-dev command is a trial path. Production needs TLS, a configured hostname, a supported external database, administrator bootstrap, and a reverse proxy or load balancer policy. High availability normally means two or more Keycloak instances with distributed caches.

The full checkout had 12,847 files, about 1,320,855 source lines, and occupied 116.8 MB before dependencies. Our JavaScript result covers the console and related workspace mechanics; it says nothing about server startup, database migrations, login latency, or Java tests.

Keycloak centralizes login for more than one application

Keycloak is an identity and access-management server. Applications redirect users to it for sign-in, then rely on issued tokens and configured policies rather than keeping their own password database. The README names user federation, strong authentication, user management, and fine-grained authorization as core jobs. This is most useful when several products need consistent login rules or when an organization must connect an existing identity provider.

Centralization moves risk into one place. A Keycloak outage can stop users from reaching every connected application, while a configuration error can widen access across them. The production guide therefore treats the database, public hostname, secure transport, proxy boundaries, and cluster behavior as parts of the identity system. Adopting Keycloak is an operating decision, not just adding a Java dependency.

The quick start omits the production control plane

The README gets a developer to a server with an extracted distribution or the official container followed by start-dev. That command is useful for learning tenants, clients, users, and login flows. It should remain a local path. The production guide requires HTTPS, a configured hostname, a production-grade database, and careful exposure of administration routes. It recommends a reverse proxy or load balancer for distributed environments.

Availability adds another layer. The guide says a typical production environment uses 2 or more Keycloak instances so logins continue when one fails. Those nodes share cache state through the project's clustering stack, and health checks must distinguish a process that has opened its port from one that has finished initialization and database migration. Backups, restore drills, certificate rotation, and configuration promotion still belong to the operator.

What happened when we ran it

Our sandbox tested commit b9b70f9 with 3 CPUs and 8 GB of RAM. The project selected by the harness was js/, a pnpm workspace. Installation succeeded in 77 seconds, adding 904 packages and occupying 596 MB. The JavaScript build then completed successfully in 48 seconds. That is a clean result for the web-side workspace.

There was no test script or target for the harness in that workspace, so the test phase was skipped. We cannot turn that into a passing test claim. The repository did have a tests directory and 20 CI workflow files. Its full checkout contained 12,847 files, about 1,320,855 source lines, and 116.8 MB of data, which explains why one workspace check cannot represent the entire server.

Our run did not start Keycloak, connect a database, create a tenant, migrate stored data, or exercise a browser login. It also did not compile the primary Java server. The useful conclusion is narrow: the JavaScript packages installed and built on Node 22, while a buyer still needs a separate server and deployment proof covering the chosen database, proxy, extensions, and authentication flows.

Version 26.7.2 makes patching part of the job

Keycloak release 26.7.2 was published on August 19, 2026. Its notes list 7 security fixes, including account-takeover paths, a fine-grained permission bypass, hidden group disclosure, and exposure of a rotated client secret through an administration API. The release also tells operators to read the migration guide before upgrading. Identity software needs this kind of repair cadence, and self-hosters must be ready to consume it.

A recent security release is evidence of active maintenance and of the stakes involved. Pinning an old image to avoid migration work is a bad trade when the service controls authentication. Maintain a staging environment that exercises each client protocol, custom mapper, theme, and extension. Test upgrades against a database copy, verify rollback limits, and schedule security releases by risk rather than waiting for a comfortable quarterly window.

Thirty-six thousand stars do not reduce identity risk

GitHub recorded 36,423 stars, 3,117 combined issues and pull requests, and a last push on August 26, 2026. Current issue traffic includes flaky authentication tests, protocol work, and an important signed-JWT policy bypass report. The combined count is not a defect total, but it shows the scale of a project supporting many protocols and deployment shapes. Apache-2.0 licensing is straightforward for the repository.

The community and documentation make Keycloak easier to evaluate than a young identity server. They do not choose session policy, recovery codes, federation behavior, or administrator boundaries for you. A platform team should start with one representative application, audit token contents and logout behavior, test account recovery, and verify what remains reachable when the identity database or one node disappears.

Choose it when identity has a named owner

Keycloak earns its place when an organization has several applications, wants one policy surface, and needs standards such as OpenID Connect or SAML under its control. The 77-second JavaScript install and 48-second build remove one contributor hurdle. They do not reduce the production service to a weekend task.

For a small product, a managed identity provider often buys better on-call economics. For a larger estate with regulatory, federation, or customization needs, Keycloak is a sensible default candidate. The deciding factor is ownership: someone must track releases, test migrations, protect the administration plane, and treat login availability as a production dependency.

Alternatives

ProjectWhat it isPick it when
Authentik gh↗A self-hosted identity provider with a strong admin interface and proxy-oriented application integrations.pick this instead when the admin experience and protecting existing web apps matter more than Keycloak's Java extension ecosystem.
ZITADEL gh↗An identity platform built around projects, organizations, and API-driven administration.pick this instead when multi-organization SaaS identity and an API-first operating model fit the product better.
ORY KratosA headless identity and user-management service designed for custom application interfaces.pick this instead when your team wants to own the login UI and compose smaller identity services.

What people are saying

  1. [velocity-scout] keycloak/keycloak

Sources

  1. Keycloak repository and README
  2. Keycloak 26.7.2 release notes
  3. Configuring Keycloak for production
  4. Signed JWT policy bypass issue 50997

More self-hosted reviews

v2 · OpenShell · wigolo · Mindwtr · club-3090 · reclip · the whole board →