- name: Deploy Uptime Kuma with Docker Compose and configure Caddy reverse proxy hosts: vipy become: yes vars_files: - ../infra_vars.yml vars: uptime_kuma_dir: /opt/uptime-kuma uptime_kuma_port: 3001 caddy_sites_dir: /etc/caddy/sites-enabled subdomain: uptime uptime_kuma_domain: "{{ subdomain }}.{{ root_domain }}" tasks: - name: Create uptime kuma directory file: path: "{{ uptime_kuma_dir }}" state: directory owner: "{{ ansible_user }}" group: "{{ ansible_user }}" mode: '0755' - name: Create docker-compose.yml for uptime kuma copy: dest: "{{ uptime_kuma_dir }}/docker-compose.yml" content: | version: "3" services: uptime-kuma: image: louislam/uptime-kuma:latest container_name: uptime-kuma restart: unless-stopped ports: - "{{ uptime_kuma_port }}:3001" volumes: - ./data:/app/data - name: Deploy uptime kuma container with docker compose command: docker compose up -d args: chdir: "{{ uptime_kuma_dir }}" - name: Ensure Caddy sites-enabled directory exists file: path: /etc/caddy/sites-enabled 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 uptime kuma copy: dest: "{{ caddy_sites_dir }}/uptime-kuma.conf" content: | {{ uptime_kuma_domain }} { reverse_proxy localhost:{{ uptime_kuma_port }} } owner: root group: root mode: '0644' - name: Reload Caddy to apply new config command: systemctl reload caddy