Keycloak Pricing: Managed vs Self-Hosted
The cheapest managed Keycloak starts at about $25/month. Self-hosted, this stack measures 3 GiB across 2 services, which fits a $25/month flat plan with room left over.
#the numbers
Managed prices as of June 2026, each linked to its source. The self-hosted row is not an estimate: the RAM figure is what this stack allocates in its compose file, and the plan is the smallest one that holds it.
| Option | Plan | Monthly | What you get |
|---|---|---|---|
| Self-hosted on Miget ★ | 4 GiB, 2 vCPU | $25 | the whole stack, flat - no per-user or per-request metering, and the plan holds your other apps too |
| Auth0 | Essentials (B2C) | ~$70 | at 1,000 MAU (from $35 at 500 MAU) - scales with users |
| Clerk | Pro | ~$25 | base + $0.02 per monthly retained user past 50k; SSO connections $75 each |
| FusionAuth | Starter (cloud) | ~$162 | cheapest managed FusionAuth, billed annually |
Identity SaaS prices per user; Keycloak prices per gigabyte. Past hobby scale the curves diverge fast.
#what it costs on other platforms
Same stack, published rates elsewhere - estimates from each platform's own pricing page, not quotes. Per-service platforms are the expensive case here, because every container in this stack is its own paid service.
| Platform | Estimated monthly | Why |
|---|---|---|
| Miget ★ | $25 | flat plan, 4 GiB - databases included, no meters |
| Heroku | ~$150 | no volumes; nothing between 1 GB ($50) and 2.5 GB ($250) dynos - 2 GB containers cost far more than shown |
| DO App Platform | ~$41 | no persistent volumes - stateful containers need managed DBs/Spaces (base $5 Spaces included here) |
| Render | ~$39 | per-service instances (0.5 GB $7, 2 GB $25) - every container is its own paid service |
| Railway | ~$31 | usage-based ($10/GB RAM-mo); vCPU billed separately at $20/vCPU-mo on top |
| Fly.io | ~$18 | cheapest sticker price - but burstable shared CPUs (1/16 core; dedicated vCPUs cost ~2-3×), no compose deploys (one app per container, manual wiring), managed DBs billed extra |
#sizing, if you outgrow the small plan
The $25 plan is the smallest that fits. For production traffic you generally want the next tier up, and dedicated vCPU if the workload is CPU-bound rather than idle-waiting.
| Use case | Plan | Monthly |
|---|---|---|
| Fits the stack | 4 GiB, 2 vCPU shared | $25 |
| Comfortable, room for your own apps | 8 GiB, 4 vCPU shared | $49 |
| Dedicated vCPU (production) | 4 GiB, 2 vCPU dedicated | $43 |
Keycloak is RAM-hungry (JVM + Quarkus): 2 GiB is the realistic floor. The managed Postgres adds 1 GiB. CPU matters at login bursts - password hashing is deliberate work.
Run Keycloak yourself
The compose file is open source and runs locally with docker compose up. One step to deploy it to
Miget on the $25/month plan, databases included.