- name: Deploy ntfy-emergency-app with Docker Compose and configure Caddy reverse proxy hosts: vipy become: yes vars_files: - ../../infra_vars.yml - ../../services_config.yml - ./ntfy_emergency_app_vars.yml vars: ntfy_emergency_app_subdomain: "{{ subdomains.ntfy_emergency_app }}" caddy_sites_dir: "{{ caddy_sites_dir }}" ntfy_emergency_app_domain: "{{ ntfy_emergency_app_subdomain }}.{{ root_domain }}" tasks: - name: Create ntfy-emergency-app directory file: path: "{{ ntfy_emergency_app_dir }}" state: directory owner: "{{ ansible_user }}" group: "{{ ansible_user }}" mode: '0755' - name: Create docker-compose.yml for ntfy-emergency-app copy: dest: "{{ ntfy_emergency_app_dir }}/docker-compose.yml" content: | version: "3" services: ntfy-emergency-app: image: ghcr.io/pmartincalvo/ntfy-emergency-app:latest container_name: ntfy-emergency-app restart: unless-stopped ports: - "{{ ntfy_emergency_app_port }}:3000" environment: NTFY_TOPIC: "{{ ntfy_emergency_app_topic }}" NTFY_URL: "{{ ntfy_emergency_app_ntfy_url }}" NTFY_USER: "{{ ntfy_emergency_app_ntfy_user }}" NTFY_PASSWORD: "{{ ntfy_emergency_app_ntfy_password }}" UI_MESSAGE: "{{ ntfy_emergency_app_ui_message }}" - name: Deploy ntfy-emergency-app container with docker compose command: docker compose up -d args: chdir: "{{ ntfy_emergency_app_dir }}" - name: Ensure Caddy sites-enabled directory exists file: path: "{{ caddy_sites_dir }}" state: directory owner: root group: root mode: '0755' - name: Ensure Caddyfile includes import directive for sites-enabled lineinfile: path: /etc/caddy/Caddyfile line: 'import sites-enabled/*' insertafter: EOF state: present backup: yes - name: Create Caddy reverse proxy configuration for ntfy-emergency-app copy: dest: "{{ caddy_sites_dir }}/ntfy-emergency-app.conf" content: | {{ ntfy_emergency_app_domain }} { reverse_proxy localhost:{{ ntfy_emergency_app_port }} } owner: root group: root mode: '0644' - name: Reload Caddy to apply new config command: systemctl reload caddy