Skip to content
Forkshelf
Menu

Self-host Zitadel

GitHub stars
15,541, as of 8 Nov 2026
Latest release
v4.20.1, as of 8 Nov 2026
Host needs
2 GB RAM
Install method
Docker Compose
One-click template
Available
  • License: AGPL-3.0-only. LICENSING.md says "This repository is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0-only)." It lists exceptions: proto/ and apps/docs/ are under the Apache License 2.0, and apps/login/, packages/zitadel-client/ and packages/zitadel-proto/ are under the MIT License.
  • Last commit: 4 Nov 2026 17:44 SGT, as of 8 Nov 2026. The repository is not archived.
  • GitHub stars, as of 8 Nov 2026: 15,541. Latest release, as of 8 Nov 2026: v4.20.1, published 3 Nov 2026 16:08 SGT.

Requirements

The Docker Compose guide asks for Docker Engine 24+ with the Compose plugin and "A machine with at least 2 GB RAM".
The production guide lists minimum system requirements for the ZITADEL process itself: "ZITADEL itself requires approximately 512MB of RAM and can operate with less than one CPU core."
It also warns: "Be aware of CPU spikes when hashing passwords. We recommend to have 4 CPU cores available for this purpose."
Disk is not stated in the official docs we read.

Docker or Docker Compose

The official guide is Set up ZITADEL with Docker Compose.
It "takes you from zero to a running ZITADEL instance in minutes and then shows you how to harden it for a homelab or semi-production deployment."

Hosting options

A Railway template for Zitadel is at railway.com/deploy/zitadel, created by Sethumadhavan K.
It was created on 21 Jun 2025 and showed "Total Projects 30" on 17 Oct 2026.
It asks for one variable, ZITADEL_EXTERNALDOMAIN.
The compose guide's "at least 2 GB RAM" is above the Railway Free limit of "0.5 GB RAM per service".

Affiliate disclosure: Forkshelf earns a commission if you sign up for Railway through the links marked "Paid link" on this page. This does not change the order or content of any guide here.

To get started, create a Railway account (Paid link).

Backups and updates

Backups: the production guide says "The ZITADEL binary itself is stateless, so there is no need for a special backup job."
For the database it sends you to the PostgreSQL docs: "Generally, for maintaining your database management system in production, please refer to the corresponding docs for PostgreSQL".
Updates: the "Updating ZITADEL" section of the Docker Compose guide has you edit ZITADEL_VERSION in .env and then run "docker compose --env-file .env -f docker-compose.yml pull".

Alternatives

Zitadel is listed on open-source alternatives to Auth0.
A related guide on this site is Self-host Keycloak.