- name: make caddy directories ansible.builtin.file: path: "{{ item}}" state: directory loop: - /opt/stacks/caddy - name: Install apache2-utils for htpasswd ansible.builtin.apt: name: apache2-utils state: present become: true when: vault_dir2opds is defined - name: Generate bcrypt hash for dir2opds basic auth ansible.builtin.shell: | htpasswd -bnB "{{ vault_dir2opds.basic_auth_user }}" "{{ vault_dir2opds.basic_auth_password }}" | awk -F: '{print $1, $2}' register: dir2opds_basic_auth_hash_result changed_when: false no_log: true when: vault_dir2opds is defined - name: template Caddyfile ansible.builtin.template: src: Caddyfile.j2 dest: /opt/stacks/caddy/Caddyfile owner: root mode: 644 notify: restart caddy - name: template caddy compose file ansible.builtin.template: src: caddy-compose.yml.j2 dest: /opt/stacks/caddy/compose.yml owner: root mode: 644 - name: deploy caddy stack community.docker.docker_compose_v2: project_src: /opt/stacks/caddy recreate: never files: - compose.yml