Sign inSign up

hlhd/zitadel

By hlhd

•Updated 5 days ago

Identity and access management — an OIDC/OAuth2/SAML provider and user-management platform.

Image
0

269

hlhd/zitadel repository overview

ZITADEL Logo

⁠ ⁠ ⁠ ⁠ GitHub Workflow Status (with event)⁠ ⁠ ⁠ ⁠ GitHub contributors⁠ ⁠

⁠

⁠The Identity Infrastructure for Developers

ZITADEL is an open-source identity and access management platform built for teams that need more than basic auth. Whether you're securing a SaaS product, building a B2B platform, or self-hosting a production IAM stack — ZITADEL gives you everything out of the box: SSO, MFA, Passkeys, OIDC, SAML, SCIM, and a battle-tested multi-tenancy model.

No vendor lock-in. No compromise on control. Just a robust, API-first identity platform you can own.

The purpose of this fork is to close an issue; login v2 ignores a project's private-labeling setting, so a tenant's login page can't be branded per-organization the way the Console implies (zitadel#10692⁠). The fix resolves the branding organization server-side (project private-labeling → instance default) and has the Login v2 app honor it. The fork tracks upstream and is rebased onto each release — apart from this fix it is identical to the upstream version it is built from, so a given fork tag is equivalent to the same upstream version.

Important

**Keep this fork current — identity is your front door.** This fork exists only to carry the #10692 branding fix and is rebased onto each upstream release, so a fork tag equals that upstream version plus the one patch. Check this fork's tag against the [latest upstream release](https://github.com/zitadel/zitadel/releases) before you deploy. If upstream ships an urgent security or stability fix this fork hasn't picked up yet, **switch back to upstream `ghcr.io/zitadel/zitadel` until the fork catches up** — a stale IAM is a liability no branding fix is worth.

GitHub GitLab license Open Issues Open PRs Contributors donate sponsor

release build Last Commit StageFreight

GHCR Docker pulls Harbor

latest updated size latest-dev updated size


🏡 Website⁠  |  💬 Chat⁠  |  📋 Docs⁠  |  🧑‍💻 Blog⁠  |  📞 Contact⁠


⁠Why ZITADEL

We built ZITADEL to handle the hardest IAM challenges at scale — starting with multi-tenancy.

ZITADELFusionAuthKeycloakAuth0/Okta
Open-source✅❌✅❌
Self-hostable✅✅✅❌
Infrastructure-level tenants✅ Instances (High scale)✅ Tenants🟡 Realms (Scaling limits)❌ (Multi-tenant = multi-account)
B2B Organizations✅ Native & Unlimited🟡 via Entity Management✅ (Recent addition)🟡 (Plan/Account dependent)
Full audit trail✅ Comprehensive Event Stream*🟡 Audit logs🟡 Audit logs🟡 Audit logs
Passkeys (FIDO2)✅✅✅✅
Actions / webhooks⁠✅✅🟡 via SPI✅
API-first (gRPC + REST)✅🟡 REST only🟡 REST only🟡 REST only
SaaS + self-host parity✅✅➖ N/A➖ N/A

ZITADEL Cloud and self-hosted ZITADEL run the same codebase.

Key differentiators for architects:

  • Relational core, event-driven soul — every mutation is written as an immutable event for a complete, API-accessible audit trail⁠. Unlike systems that log only select activities, ZITADEL provides a comprehensive event stream that can be audited or streamed to external systems via Webhooks.
  • Strict multi-tenant hierarchy — Identity System → Organizations → Projects, with isolated data and policy scoping at multiple levels
  • API-first design — every resource and action is available via connectRPC, gRPC, and HTTP/JSON APIs⁠
  • Zero-downtime updates⁠ and horizontal scalability⁠ without external session stores

⁠Get Started in 3 Minutes

👉 Quick Start Guide⁠

⁠ZITADEL Self-Hosted
# Docker Compose — up and running in under 3 minutes
curl -LO https://raw.githubusercontent.com/zitadel/zitadel/main/deploy/compose/docker-compose.yml \
  && curl -LO https://raw.githubusercontent.com/zitadel/zitadel/main/deploy/compose/.env.example \
  && cp .env.example .env \
  && docker compose up -d --wait

Full deployment guides:

Need professional support for your self-hosted deployment? Contact us⁠.

⁠ZITADEL Cloud (SaaS)

Start for free at zitadel.com⁠ — no credit card required. Available in US · EU · AU · CH. Pay-as-you-go pricing⁠.


⁠Integrate with the V2 API

ZITADEL exposes every capability over a typed API. Here's how to create a user with the V2 REST API:

curl -X POST https://$ZITADEL_DOMAIN/v2/users/human \
  -H "Authorization: Bearer $ACCESS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "[email protected]",
    "profile": { "givenName": "Alice", "familyName": "Smith" },
    "email": { "email": "[email protected]", "sendCode": {} }
  }'

Explore the full API reference⁠ — including connectRPC and gRPC transports — or jump straight to quickstart examples⁠.


⁠Features

Authentication

Multi-Tenancy

Integration

Self-Service & Admin

Deployment

Track upcoming features on our roadmap⁠ and follow our changelog⁠ for recent updates.


⁠Showcase

⁠Login V2

Our new, fully customizable login experience — documentation⁠


⁠Adopters & Ecosystem

Used in production by organizations worldwide. See the full Adopters list⁠ — and add yours by submitting a pull request.


⁠How To Contribute

ZITADEL is built in the open and welcoming to contributions of all kinds.

⁠Contributors

⁠

Made with contrib.rocks⁠.


⁠Security

Security policy: SECURITY.md⁠

Vulnerability Disclosure Policy⁠ — how to responsibly report security issues.

Technical Advisories⁠ are published for major issues that could impact security or stability in production.

⁠License

AGPL-3.0⁠ — see LICENSING.md⁠ for the full licensing policy, including Apache 2.0 and MIT exceptions for specific directories.

Tag summary

Content type

Image

Digest

sha256:36f5d8cb8…

Size

50.9 MB

Last updated

5 days ago

docker pull hlhd/zitadel