Deploy Zitadel

Zitadel 4.19: identity platform with OIDC, SAML, passkeys and multitenancy.

Deploy Zitadel

Just deployed

/var/lib/postgresql/data

Deploy and Host Zitadel on Railway

Zitadel is an open-source identity and access management platform built for multi-tenancy. It provides OpenID Connect, OAuth2 and SAML, passkeys and MFA, organizations with their own users and branding, service accounts, actions and a full API. It is an alternative to Auth0, Keycloak and Okta.

About Hosting Zitadel

This template runs the official ghcr.io/zitadel/zitadel:v4.19.1 image with Railway Postgres; Zitadel keeps all state in the database, so the service has no volume. The first instance, an organization and an admin user are created on first boot from Railway variables with a generated password and masterkey. Zitadel 4 normally uses a separate login container that shares a token file with the API; Railway services cannot share volumes, so this template keeps the built-in login UI. The instance domain is fixed at first boot from the Railway domain. It fits the Hobby plan for small user bases.

Common Use Cases

  • Login, MFA and passkeys for your own apps via OIDC
  • B2B SaaS with separate organizations per customer
  • SAML single sign-on for internal tools

Dependencies for Zitadel Hosting

  • ghcr.io/zitadel/zitadel:v4.19.1 (official image)
  • Railway Postgres

Deployment Dependencies

Implementation Details

ServiceSourceNetworkingStorage
zitadelghcr.io/zitadel/zitadel:v4.19.1public domain on 8080none (state in Postgres)
PostgresRailway PostgresprivateRailway volume

Sign in to the console at https:///ui/console as admin@my-organization..

VariableDefaultPurpose
ZITADEL_FIRSTINSTANCE_ORG_NAMEMy OrganizationFirst organization
ZITADEL_FIRSTINSTANCE_ORG_HUMAN_USERNAMEadminAdmin username
ZITADEL_FIRSTINSTANCE_ORG_HUMAN_PASSWORDZi1! + generatedAdmin password (meets the default policy)
ZITADEL_MASTERKEYgeneratedEncrypts secrets in the database; never change it
ZITADEL_EXTERNALDOMAINRailway domainInstance domain set on first boot

Notes:

  • After the password, Zitadel offers optional 2FA setup; you can skip it.
  • To move to a custom domain, add it as an instance domain in Zitadel before switching ZITADEL_EXTERNALDOMAIN.
  • First-instance variables only apply on the first start.

This is a community-maintained deployment package and does not imply affiliation with or endorsement by ZITADEL.

Why Deploy Zitadel on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Zitadel on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.


Template Content

More templates in this category

View Template
Keycloak
Keycloak template with keywind theme + apple and discord providers

beuz
755
View Template
lua-protector
Test deployed my project first

trianaq765-cmd's Project
36
View Template
bknd
Feature-rich yet lightweight backend

10