App Store template
ZITADEL icon

ZITADEL

Open-source identity and access management platform for authentication and authorization.

Launch in your Sealos workspace.

ZITADEL template preview
Template previewFull screenshot
Template deployments
15 on Sealos
Deployment
Your own instance
Category
Tools

About this template

Overview

ZITADEL is an open-source identity and access management (IAM) platform for authentication and authorization. This template deploys ZITADEL with a managed PostgreSQL backend on Sealos Cloud.

From the documentation

ZITADEL provides centralized identity services including SSO, OAuth 2.0, OIDC, SAML, user and organization management, and policy-based access controls. It is commonly used as an identity layer for SaaS platforms, internal tools, and API ecosystems.

How to deploy ZITADEL

  1. Choose Deploy now to start ZITADEL in your Sealos workspace.
  2. Review admin_username, admin_password in the deployment form.
  3. Launch the template, then inspect the application status and resource cards in Canvas.

Resources to plan for

Start with the resources defined by the ZITADEL template. Review CPU, memory, persistent storage, and network allocations for every service in Canvas. Capacity needs depend on your data and workload; monitor usage as they grow.

Template configuration and setup

Access after deployment

Use the application URL or connection details shown in Canvas. Follow the deployment guide for first-time account setup or client configuration, and keep generated credentials available for that step.

Hosting and billing

Sealos monthly plans include compute, memory, storage, and traffic. Size your plan for all deployed services. Software licenses and external AI or API services may have separate terms and charges. Confirm the applicable plan and optional charges in Cost Center.

Compare Sealos resource plans
Read full documentationCollapse documentation

For current cloud charges, refer to Sealos plan pricing. Upstream documentation may reference earlier billing models.

Deploy and Host ZITADEL on Sealos

ZITADEL is an open-source identity and access management (IAM) platform for authentication and authorization. This template deploys ZITADEL with a managed PostgreSQL backend on Sealos Cloud.

ZITADEL Logo

About Hosting ZITADEL

ZITADEL provides centralized identity services including SSO, OAuth 2.0, OIDC, SAML, user and organization management, and policy-based access controls. It is commonly used as an identity layer for SaaS platforms, internal tools, and API ecosystems.

This Sealos template deploys ZITADEL as a production-oriented stack with HTTPS ingress and persistent PostgreSQL storage (via KubeBlocks). The application is exposed through a public TLS endpoint, and database credentials are injected from managed Kubernetes secrets.

For first-time bootstrapping, the template provisions the initial human user from deployment inputs. Based on ZITADEL's first-instance model in the official Kubernetes documentation, the login identifier format should be <username>@zitadel.<domain>.

Common Use Cases

  • Workforce SSO: Centralize login for internal dashboards, admin systems, and enterprise tools.
  • Customer Identity (CIAM): Manage end-user sign-up, sign-in, and account lifecycle for SaaS applications.
  • API and Service Authentication: Issue and validate tokens for backend services and machine-to-machine workflows.
  • B2B Multi-Organization Access: Isolate users, roles, and permissions across organizations/tenants.
  • Policy-Driven Access Control: Enforce secure access patterns with configurable identity policies.

Dependencies for ZITADEL Hosting

The Sealos template includes all required runtime dependencies: ZITADEL application service, managed PostgreSQL cluster, ingress, service exposure, and persistent storage.

Deployment Dependencies

Implementation Details

Architecture Components

This template deploys the following resources:

  • ZITADEL (StatefulSet): Runs ghcr.io/zitadel/zitadel:v4.10.1 and starts with start-from-init.
  • PostgreSQL Cluster (KubeBlocks): Provisions PostgreSQL 16.4.0 with persistent storage and managed credentials.
  • Service + Ingress: Exposes ZITADEL over HTTPS with NGINX ingress annotations and TLS integration.
  • App Resource: Publishes the external access URL to Sealos app cards.
Runtime Configuration

Primary deployment parameters:

  • admin_username: Initial first-instance human username.
  • admin_password: Initial first-instance human password.

Database connection fields (host, port, username, password) are injected from the KubeBlocks-generated secret ${{ defaults.app_name }}-pg-conn-credential.

Default Resources and Storage
ComponentCPU RequestCPU LimitMemory RequestMemory LimitStorage
ZITADEL20m200m25Mi256MiManaged by runtime + DB persistence
PostgreSQL50m500m51Mi512Midata 1Gi
License Information

ZITADEL is licensed under GNU AGPL v3.

Why Deploy ZITADEL on Sealos?

Sealos is an AI-assisted Cloud Operating System built on Kubernetes that simplifies deployment and operations. By deploying ZITADEL on Sealos, you get:

  • One-Click Deployment: Launch IAM infrastructure without manual Kubernetes YAML management.
  • Managed Database Provisioning: PostgreSQL is provisioned and wired automatically.
  • Easy Customization: Tune environment variables and compute/storage resources from Canvas.
  • Secure Public Access: HTTPS ingress with TLS support out of the box.
  • Persistent Storage Included: Durable storage for database state.
  • AI-Assisted Operations: Update configuration using AI dialog or resource cards.
  • Pay-as-You-Go Efficiency: Scale resources based on actual workload demand.

Deploy ZITADEL on Sealos and focus on identity design instead of infrastructure plumbing.

Deployment Guide

  1. Open the ZITADEL template and click Deploy Now.
  2. Configure deployment parameters:
    • App Host and App Name
    • Admin Username and Admin Password
    • Keep Master Key as generated unless you need a custom value
  3. Wait for deployment to complete (typically 2-3 minutes). After deployment, you will be redirected to Canvas. For later changes, describe your requirements in the dialog to let AI apply updates, or click relevant resource cards to modify settings.
  4. Access ZITADEL console and sign in:
    • Console URL: https://<domain>/ui/console
    • Login Name: <username>@zitadel.<domain>
    • Password: your configured admin_password

Where <domain> is your deployed public domain (normally ${app_host}.${SEALOS_CLOUD_DOMAIN}).

Example:

  • Domain: zitadel-ab12cd34.usw-1.sealos.app
  • Username: zitadel-admin
  • Login Name: [email protected]

Configuration

After deployment, you can configure ZITADEL through:

  • AI Dialog: Describe desired changes and let AI apply updates.
  • Resource Cards: Adjust StatefulSet resources, environment variables, and ingress settings.
  • ZITADEL Console: Manage organizations, users, applications, and identity flows.

Recommended post-deployment actions:

  1. Verify the first admin can sign in.
  2. Rotate/bootstrap credentials according to your security policy.
  3. Configure OIDC/SAML applications and token settings.
  4. Enable MFA and additional security policies.

Scaling

To scale your deployment:

  1. Open your deployment Canvas.
  2. Select the ZITADEL StatefulSet resource card.
  3. Increase CPU/Memory based on workload.
  4. Apply changes and verify readiness/liveness probes stay healthy.

For higher availability and performance, also plan PostgreSQL sizing and backup strategy according to traffic and retention requirements.

Troubleshooting

Common Issues

Issue: Pod enters CrashLoopBackOff during initialization

  • Cause: Initial admin password does not satisfy password policy requirements.
  • Solution: Use a strong password containing uppercase, lowercase, number, and special character.

Issue: Login fails even with correct password

  • Cause: Login identifier format is incorrect.
  • Solution: Use Login Name = <username>@zitadel.<domain>.

Issue: Cannot access /ui/console

  • Cause: Ingress/TLS provisioning is still in progress.
  • Solution: Wait for ingress and certificate readiness, then retry.

Issue: Database connection errors on startup

  • Cause: PostgreSQL not yet ready or temporary startup race.
  • Solution: Verify PostgreSQL cluster health and retry once dependencies are ready.
Getting Help

Additional Resources

License

This Sealos template follows repository licensing terms. ZITADEL itself is licensed under GNU AGPL v3.

From launch to everyday operations

Why deploy
on Sealos

A shorter path from an app you want to an app you can run. Sealos brings deployment and ongoing operations into one place.

  1. One-click deployment

    Start with a ready-made template. Review its configuration and launch from the Sealos console.

  2. Managed Kubernetes

    Run on managed infrastructure with built-in workload scheduling and recovery.

  3. Automatic HTTPS

    Give your application a public HTTPS endpoint with certificates managed for you.

  4. Persistent storage

    Keep application data on persistent volumes across container restarts.

  5. Room to grow

    Adjust CPU, memory, and replicas from the console as your workload changes.

One template. Connected resources.

You Get the Whole Stack

Sealos provisions the resources defined by your template and brings them together in your workspace.

  • App Service

    Container workloads with configurable CPU, memory, and replicas.

  • Public HTTPS URL

    An address for your app, with managed TLS certificates.

  • Database

    A database provisioned alongside your app when the template calls for one.

  • Persistent Volume

    Storage for the files and data your application needs to keep.

  • Environment Variables

    Application settings and secrets configured in one place.

  • Logs & Metrics

    Inspect container logs and resource usage from the console.

Resources and their configuration vary by template. Review the deployment form for this app’s exact setup.

Explore more production-ready templates.

More