Postgres
Image: postgres:17
- Port 5432/tcp
- 10 GB volume at /var/lib/postgresql/data
- 1 vCPU · 1 GB
Template · Auth
Cloud-native identity platform (OIDC, passkeys, multi-tenant) on PostgreSQL.
Opens the dashboard with this template pre-selected. Sign in with GitHub if you are new; the free tier needs no card.
2 services in the environment you pick, on the private network of the project.
ghcr.io/zitadel/zitadel:latest-debug (the debug variant has a shell) with start-from-init, PostgreSQL 17. Login at the public URL with the generated admin password.
Image: postgres:17
Image: ghcr.io/zitadel/zitadel:latest-debug
/app/zitadel start-from-init --masterkeyFromEnv --tlsMode external
Generated secrets never leave the platform; references are resolved on the private network. Anything marked required is asked for at deploy time.
| Name | Value |
|---|---|
| POSTGRES_USER | postgresSuperuser name |
| POSTGRES_PASSWORD | generated (password)Generated at deploy |
| POSTGRES_DB | zitadelDatabase created on first start |
| PGDATA | /var/lib/postgresql/data/pgdata |
| DATABASE_URL | postgresql://${{self.POSTGRES_USER}}:${{self.POSTGRES_PASSWORD}}@${{self.SKIFFLY_PRIVATE_DOMAIN}}:5432/${{self.POSTGRES_DB}}Connection string on the private network |
| Name | Value |
|---|---|
| ZITADEL_MASTERKEY | generated (hex32)Exactly 32 characters |
| ZITADEL_EXTERNALDOMAIN | ${{self.SKIFFLY_PUBLIC_DOMAIN}} |
| ZITADEL_EXTERNALPORT | 443 |
| ZITADEL_EXTERNALSECURE | true |
| ZITADEL_PORT | 8080 |
| ZITADEL_DATABASE_POSTGRES_HOST | ${{Postgres.SKIFFLY_PRIVATE_DOMAIN}} |
| ZITADEL_DATABASE_POSTGRES_PORT | 5432 |
| ZITADEL_DATABASE_POSTGRES_DATABASE | ${{Postgres.POSTGRES_DB}} |
| ZITADEL_DATABASE_POSTGRES_USER_USERNAME | zitadel |
| ZITADEL_DATABASE_POSTGRES_USER_PASSWORD | generated (password) |
| ZITADEL_DATABASE_POSTGRES_USER_SSL_MODE | disable |
| ZITADEL_DATABASE_POSTGRES_ADMIN_USERNAME | ${{Postgres.POSTGRES_USER}} |
| ZITADEL_DATABASE_POSTGRES_ADMIN_PASSWORD | ${{Postgres.POSTGRES_PASSWORD}} |
| ZITADEL_DATABASE_POSTGRES_ADMIN_SSL_MODE | disable |
| ZITADEL_FIRSTINSTANCE_ORG_HUMAN_USERNAME | admin |
| ZITADEL_FIRSTINSTANCE_ORG_HUMAN_PASSWORD | generated (password)Must be changed on first login |
Volumes, secrets and domain pre-wired. Runs on EU nodes, paid per minute from a prepaid balance.