- name: Set sites defaults ansible.builtin.set_fact: caddy_sites_defaults: "{{ caddy_global_sites_defaults | combine(caddy_my_sites_defaults) }}" - name: Create sites config directories loop: "{{ caddy_sites }}" ansible.builtin.file: path: "{{ caddy_sites_dir }}/{{ item.id }}" state: "directory" group: "{{ caddy_system_group }}" mode: "0750" - name: Generate sites coraza.conf config file loop: "{{ caddy_sites }}" loop_control: loop_var: "site" ansible.builtin.template: src: "templates/coraza.conf" dest: "{{ caddy_sites_dir }}/{{ site.id }}/coraza.conf" group: "{{ caddy_system_group }}" mode: "0640" notify: - "Restart Caddy" - name: Generate sites crs-setup config file loop: "{{ caddy_sites }}" loop_control: loop_var: "site" ansible.builtin.template: src: "templates/crs-setup.conf" dest: "{{ caddy_sites_dir }}/{{ site.id }}/crs-setup.conf" group: "{{ caddy_system_group }}" mode: "0640" notify: - "Restart Caddy" - name: Generate sites exclusions before request file loop: "{{ caddy_sites }}" loop_control: loop_var: "site" ansible.builtin.template: src: "templates/exclusions-request-before.conf" dest: "{{ caddy_sites_dir }}/{{ site.id }}/exclusions-request-before.conf" group: "{{ caddy_system_group }}" mode: "0640" notify: - "Restart Caddy" - name: Generate sites exclusions after response file loop: "{{ caddy_sites }}" loop_control: loop_var: "site" ansible.builtin.template: src: "templates/exclusions-response-after.conf" dest: "{{ caddy_sites_dir }}/{{ site.id }}/exclusions-response-after.conf" group: "{{ caddy_system_group }}" mode: "0640" notify: - "Restart Caddy" - name: Copy bot barrier template ansible.builtin.copy: src: "files/bot_barrier_template.html" dest: "{{ caddy_config_dir }}/bot_barrier_template.html" group: "{{ caddy_system_group }}" mode: "0640" notify: - "Restart Caddy" - name: Generate Caddyfile ansible.builtin.template: src: "templates/Caddyfile" dest: "{{ caddy_config_dir }}/Caddyfile" group: "{{ caddy_system_group }}" mode: "0640" notify: - "Restart Caddy" - name: Enable and start Caddy ansible.builtin.service: name: "{{ caddy_my_name }}" state: "started" enabled: true