This repository contains an example of how to provision a Zitadel Docker container with Pulumi.
- Docker
- Pulumi
- some node package manager (bun, pnpm, npm, yarn, ... whatever you prefer)
it uses docker compose to spin up a Postgres database and a Zitadel instance. (see docker-compose.yaml)
To be provision ready it does the following using the run.sh script:
- Starts a Postgres database
- Starts a Zitadel instance
- wire Zitadel and Postgres database (see defaults.yaml)
- creating machine user and machine key (see init-steps.yaml)
- since we mount volume to the Zitadel instance, the machine key will be persisted and available on host machine (after running script see zitadel/secrets/machine-key.json)
- Use Pulumi to provision a Zitadel instance by using Zitadel pulumi provider (see pulumi/index.ts) and Zitadels formerly created machine-key to run against local docker instance of Zitadel (see Pulumi.dev.yaml)
./run.sh