2026-01-05 16:40:37 +01:00
|
|
|
---
|
|
|
|
|
# Docker Compose setup for Zitadel
|
|
|
|
|
|
2026-01-06 16:43:57 +01:00
|
|
|
- name: Include clean tasks when force recreate is requested
|
|
|
|
|
include_tasks: clean.yml
|
|
|
|
|
when: zitadel_force_recreate | default(false) | bool
|
|
|
|
|
|
2026-01-05 16:40:37 +01:00
|
|
|
- name: Create Zitadel configuration directory
|
|
|
|
|
file:
|
|
|
|
|
path: "{{ zitadel_config_dir }}"
|
|
|
|
|
state: directory
|
|
|
|
|
mode: '0755'
|
|
|
|
|
|
|
|
|
|
- name: Create Zitadel internal network
|
|
|
|
|
community.docker.docker_network:
|
|
|
|
|
name: "{{ zitadel_network }}"
|
|
|
|
|
driver: bridge
|
|
|
|
|
internal: true
|
|
|
|
|
|
|
|
|
|
- name: Deploy Zitadel Docker Compose configuration
|
|
|
|
|
template:
|
|
|
|
|
src: docker-compose.zitadel.yml.j2
|
|
|
|
|
dest: "{{ zitadel_config_dir }}/docker-compose.yml"
|
|
|
|
|
mode: '0600'
|
|
|
|
|
notify: Restart Zitadel
|
|
|
|
|
|
|
|
|
|
- name: Start Zitadel services
|
|
|
|
|
community.docker.docker_compose_v2:
|
|
|
|
|
project_src: "{{ zitadel_config_dir }}"
|
|
|
|
|
state: present
|
|
|
|
|
register: zitadel_deploy
|
|
|
|
|
|
|
|
|
|
- name: Wait for Zitadel database to be ready
|
|
|
|
|
community.docker.docker_container_exec:
|
|
|
|
|
container: zitadel-db
|
|
|
|
|
command: pg_isready -U {{ zitadel_db_user }} -d {{ zitadel_db_name }}
|
|
|
|
|
register: db_ready
|
|
|
|
|
until: db_ready.rc == 0
|
|
|
|
|
retries: 30
|
|
|
|
|
delay: 2
|
|
|
|
|
changed_when: false
|
|
|
|
|
|
|
|
|
|
- name: Wait for Zitadel to be healthy
|
|
|
|
|
uri:
|
|
|
|
|
url: "https://{{ zitadel_domain }}/debug/ready"
|
|
|
|
|
method: GET
|
|
|
|
|
status_code: 200
|
|
|
|
|
validate_certs: yes
|
|
|
|
|
register: zitadel_health
|
|
|
|
|
until: zitadel_health.status == 200
|
|
|
|
|
retries: 30
|
|
|
|
|
delay: 10
|
|
|
|
|
changed_when: false
|