Layer 3 · self-hosting reality check
What it actually takes to self-host ZITADEL
The docs say 1 GB. In practice you want 4 GB. Here is the honest version — real requirements, real monthly cost, what you will be maintaining, and the one thing that catches people out.
Usually reached from Auth0 alternatives, where ZITADEL is one of the picks.
| RAM — documented minimum | 1 GB |
|---|---|
| RAM — what it really needs | 4 GB |
| CPU | 2 vCPU |
| Disk | Small; it is event-sourced so the events table grows steadily |
| Monthly cost | $24–40/mo plus Postgres, against Okta or Auth0 per-user pricing |
| Setup time | Half a day |
| How you install it | container plus PostgreSQL — notably simpler than Keycloak |
| Ongoing maintenance | Moderate. |
| Where it stops scaling | Millions of users; it is built multi-tenant from the ground up. |
The thing that catches people out
It is event-sourced, which gives a complete audit trail and means the events table only ever grows. On a busy instance that table becomes the largest thing in your database and query performance degrades if you ignore it. Plan for projection rebuilds and database growth from the start rather than discovering it at 50 GB.
When not to self-host ZITADEL
You need deep SAML federation with legacy enterprise identity providers. Keycloak remains the more complete answer there.
Every guide here carries this section. A site that only ever tells you to self-host is selling something — the useful answer is sometimes no.
Other Layer 3 self-hosting guides
Common questions
- How much RAM does ZITADEL actually need?
- 4 GB in practice. The documented minimum is 1 GB, which is the figure at which the process starts rather than the figure at which it works under real use. 2 vCPU alongside it.
- What does self-hosting ZITADEL cost per month?
- $24–40/mo plus Postgres, against Okta or Auth0 per-user pricing This is commodity VPS pricing and excludes your time, which is the larger cost for most people — budget for moderate.
- How long does it take to set up ZITADEL?
- Half a day, via container plus PostgreSQL — notably simpler than Keycloak.
- When should I NOT self-host ZITADEL?
- You need deep SAML federation with legacy enterprise identity providers. Keycloak remains the more complete answer there.
- What is the most common mistake when self-hosting ZITADEL?
- It is event-sourced, which gives a complete audit trail and means the events table only ever grows. On a busy instance that table becomes the largest thing in your database and query performance degrades if you ignore it. Plan for projection rebuilds and database growth from the start rather than discovering it at 50 GB.