---
title: "Deploy Zitadel"
description: "A fully configured Zitadel instance with an optional V2 Login UI."
category: "Authentication"
url: https://railway.com/deploy/zitadel-1
---

# Deploy Zitadel

A fully configured Zitadel instance with an optional V2 Login UI.

**[Deploy Zitadel on Railway](https://railway.com/template/zitadel-1)**

- **Creator:** Truer Projects
- **Category:** Authentication
- **Total deploys:** 4

## Template content

### zitadel

- **Image:** ghcr.io/zitadel/zitadel:latest
- **Start command:** `/app/zitadel start-from-init  --masterkeyFromEnv  --tlsMode external`
- **Health check:** /debug/healthz
- **Public domain:** Yes

### zitadel-login

- **Image:** ghcr.io/zitadel/zitadel-login:v4.11.0
- **Public domain:** Yes

### zitadel-pg https://devicons.railway.app/i/postgresql.svg

- **Image:** ghcr.io/railwayapp-templates/postgres-ssl:17.7

## Documentation

# Deploy and Host Zitadel on Railway

From Zitadel's [website](https://zitadel.com/docs):

&gt; ZITADEL is the Identity Infrastructure for Developers.

&gt; We provide a hardened, extensible turnkey solution for all your authentication and authorization needs. Instead of building your own login system, use ZITADEL to accelerate your project with features that work out of the box:

- Secure Login: Multi-factor authentication (OTP, U2F, Passkeys) and single sign-on (OIDC, SAML, OAuth2).
- B2B Ready: First-class multi-tenancy with branding customization and self-service.
- Auditable: Exhaustive audit trail of all events.
- Extensible: Execute custom code on events (Actions) to fit your unique workflows.

## About Hosting Zitadel

V1 login UI should work right of the box. you can fetch the initial username and password from the env vars in your zitadel instance:
`FULL_ZITADEL_FIRSTINSTANCE_ORG_HUMAN_USERNAME`
`ZITADEL_FIRSTINSTANCE_ORG_HUMAN_PASSWORD`

If you want to use the Login V2 UI, do the following:
- Login via the Zitadel instance above
- Go to `/ui/console/users/create-machine` and create a machine / service user
- Create a personal access token (PAT) for that user.
- Go to `/ui/console/instance/members` and assign them the `Instance Login Client` role (aka `IAM_LOGIN_CLIENT`)

## Common Use Cases

- Industries requiring auth audit trails (finance, medicine)
- Auth for multiple projects
- B2B services

## Dependencies for Zitadel Hosting

- Postgres - Should be preconfigured.

### Deployment Dependencies

Relevant links:
- [Production Checklist](https://zitadel.com/docs/self-hosting/manage/productionchecklist)
- [Quickstart guide](https://zitadel.com/docs/guides/start/quickstart#step-1-define-your-project)


## 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.


## Similar templates

- [Keycloak](https://railway.com/deploy/mSwigX) — Keycloak template with keywind theme + apple and discord providers
- [lua-protector](https://railway.com/deploy/lua-protector) — Test deployed my project first
- [bknd](https://railway.com/deploy/p4nTYL) — Feature-rich yet lightweight backend

Open this page in a browser: https://railway.com/deploy/zitadel-1
