- name: Ensure Caddy user ansible.builtin.import_tasks: ../../common/tasks/create_service_user.yml - name: Set Caddy facts ansible.builtin.set_fact: caddyfiles_directory: '{{ service_root }}/caddyfiles' - name: Ensure Caddy directories exist and are writable ansible.builtin.file: path: '{{ item }}' state: directory owner: '{{ service_user }}' group: '{{ service_user }}' mode: '700' loop: - '{{ service_root }}/data' - '{{ service_root }}/config' - '{{ service_root }}/conf' - '{{ caddyfiles_directory }}' - name: Set Caddyfile to import caddyfiles directory ansible.builtin.copy: content: | { auto_https off } import /caddyfiles/* dest: '{{ service_root }}/conf/Caddyfile' owner: '{{ service_user }}' group: '{{ service_user }}' mode: '644' - name: Deploy caddy compose service ansible.builtin.import_role: name: compose-service vars: docker_volumes: - '{{ service_root }}/data:/data' - '{{ service_root }}/config:/config' - '{{ service_root }}/conf:/etc/caddy' - '{{ caddyfiles_directory }}:/caddyfiles' docker_ports: - "80:80" - "443:443" - "443:443/udp" - name: Add container to Caddy network community.docker.docker_network: name: Caddy connected: - '{{ service_name }}'