Database Configuration
- Cockroach
 - Postgres
 
Cockroach
The default database of ZITADEL is CockroachDB. The SQL database provides a bunch of features like horizontal scalability, data regionality and many more.
The default configuration of the database looks like this:
Database:
  cockroach:
    Host: localhost
    Port: 26257
    Database: zitadel
    MaxOpenConns: 20
    MaxConnLifetime: 30m
    MaxConnIdleTime: 30m
    Options: ""
    User:
      Username: zitadel
      Password: ""
      SSL:
        Mode: disable
        RootCert: ""
        Cert: ""
        Key: ""
    Admin:
      Username: root
      Password: ""
      SSL:
        Mode: disable
        RootCert: ""
        Cert: ""
        Key: ""
Postgres
Postgres extension is currently in beta.
If you want to use a PostgreSQL database instead of CockroachDB you can overwrite the default configuration.
Currently versions >= 14 are supported.
Postgres can be configured as follows:
Database:
  postgres:
    Host: localhost
    Port: 5432
    Database: zitadel
    MaxOpenConns: 25
    MaxConnLifetime: 1h
    MaxConnIdleTime: 5m
    Options:
    User:
      Username: zitadel
      Password: zitadel
      SSL:
        Mode: disable
        RootCert:
        Cert:
        Key:
    Admin:
      Username: postgres
      Password: postgres
      SSL:
        Mode: disable
        RootCert:
        Cert:
        Key:
The admin user is only needed for the installation step but can also be avoided by preparing the necessary requirements:
- the zitadel user
 - the zitadel database
 - granting required permissions to the zitadel user
 
CREATE ROLE zitadel LOGIN;
CREATE DATABASE zitadel;
GRANT CONNECT, CREATE ON DATABASE zitadel TO zitadel;
Don't forget to adjust pg_hba.conf and set a password for the zitadel user.
With the setup done, follow the phases guide to run the init and then setup phase to get all necessary tables and data set up.