boma/roles/reverse_proxy/tasks/main.yml
sjat 50b6445bdd feat(reverse_proxy): Caddy role (Gandi DNS-01, on-host image build, route catalog)
Implements the Caddy reverse proxy role (ADR-024): builds boma/caddy-gandi:latest
on-host (caddy-dns/gandi plugin), renders Caddyfile from route catalog, brings
Compose project up. Adds community.docker to requirements.yml, production group_vars,
and a caddy-image Makefile target.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 17:36:58 +02:00

54 lines
1.4 KiB
YAML

---
- name: Ensure the service directory exists
ansible.builtin.file:
path: "{{ reverse_proxy__base_dir }}"
state: directory
mode: "0750"
tags: [config]
- name: Copy the Caddy image Dockerfile
ansible.builtin.copy:
src: Dockerfile
dest: "{{ reverse_proxy__base_dir }}/Dockerfile"
mode: "0644"
register: _caddy_dockerfile
tags: [config]
- name: Render the Caddyfile
ansible.builtin.template:
src: Caddyfile.j2
dest: "{{ reverse_proxy__base_dir }}/Caddyfile"
mode: "0644"
tags: [config]
- name: Render the env file (Gandi token)
ansible.builtin.template:
src: env.j2
dest: "{{ reverse_proxy__base_dir }}/.env"
mode: "0600"
tags: [config]
- name: Render the compose file
ansible.builtin.template:
src: docker-compose.yml.j2
dest: "{{ reverse_proxy__base_dir }}/docker-compose.yml"
mode: "0644"
tags: [config]
- name: Build the custom Caddy image (caddy-dns/gandi) on the host
community.docker.docker_image:
name: "{{ reverse_proxy__image }}"
source: build
build:
path: "{{ reverse_proxy__base_dir }}"
state: present
force_source: "{{ _caddy_dockerfile.changed }}"
when: reverse_proxy__manage | bool
tags: [deploy]
- name: Bring the reverse proxy up
community.docker.docker_compose_v2:
project_src: "{{ reverse_proxy__base_dir }}"
state: present
when: reverse_proxy__manage | bool
tags: [deploy]