--- - name: Deploy Caddy service block: - name: Set Caddy directories ansible.builtin.set_fact: caddy_service_dir: "{{ ansible_env.HOME }}/.services/caddy" caddy_data_dir: "/mnt/services/caddy" geoip_db_path: "/mnt/services/echoip" caddy_email: "{{ lookup('community.general.onepassword', 'Caddy (Proxy)', vault='Dotfiles', field='email') }}" - name: Create Caddy directory ansible.builtin.file: path: "{{ caddy_service_dir }}" state: directory mode: "0755" - name: Setup country blocking ansible.builtin.include_tasks: country-blocking.yml - name: Copy Dockerfile for custom Caddy build ansible.builtin.copy: src: Dockerfile dest: "{{ caddy_service_dir }}/Dockerfile" mode: "0644" register: caddy_dockerfile - name: Create Caddy network ansible.builtin.command: docker network create caddy_default register: create_caddy_network failed_when: - create_caddy_network.rc != 0 - "'already exists' not in create_caddy_network.stderr" changed_when: create_caddy_network.rc == 0 - name: Deploy Caddy docker-compose.yml ansible.builtin.template: src: docker-compose.yml.j2 dest: "{{ caddy_service_dir }}/docker-compose.yml" mode: "0644" register: caddy_compose - name: Deploy Caddy Caddyfile ansible.builtin.template: src: Caddyfile.j2 dest: "{{ caddy_service_dir }}/Caddyfile" mode: "0644" register: caddy_file - name: Stop Caddy service ansible.builtin.command: docker compose -f "{{ caddy_service_dir }}/docker-compose.yml" down --remove-orphans when: caddy_compose.changed or caddy_file.changed - name: Start Caddy service ansible.builtin.command: docker compose -f "{{ caddy_service_dir }}/docker-compose.yml" up -d when: caddy_compose.changed or caddy_file.changed tags: - caddy - services - reverse-proxy