macrostack

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.

Wondering whether you need to at all? Is Auth0 free? — what the free tier actually allows, and where the wall is.

RAM — documented minimum1 GB
RAM — what it really needs4 GB
CPU2 vCPU
DiskSmall; 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 timeHalf a day
How you install itcontainer plus PostgreSQL — notably simpler than Keycloak
Ongoing maintenanceModerate.
Where it stops scalingMillions 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.
The Macrostack brief

New swaps, worth your inbox.

A short, occasional email when we add a high-intent alternative or ship a new head-to-head. No spam, no selling your address — unsubscribe in one click.