Concepts
Databases
Choose SQLite, PostgreSQL, or Spanner for the Zitadel server.
Zitadel persists projects, users, sessions, and related state in a SQL database. Configure exactly one dialect. When database: is omitted, the server uses SQLite at <server.data_dir>/zitadel.db.
- SQLite — local development, CLI
zitadel start, and small single-node / homelab deployments (single-writer limits apply). - PostgreSQL — production and the Docker Compose operator stack.
- Spanner — production on Google Cloud Spanner.
PostgreSQL and Spanner are the production peers. For the CLI binary runtime path, see Local runtime. For YAML and environment examples, see the repository configuration guide.