/
/
/
Ansible role that deploys a supervised home assistant installation on my homeassistant device.
1---
2# Reverse Proxy (Nginx Proxy Manager) + CrowdSec Deployment
3
4- name: Create reverse proxy directory structure
5 ansible.builtin.file:
6 path: "{{ item }}"
7 state: directory
8 owner: "{{ homeassistant_docker_owner }}"
9 group: "{{ homeassistant_docker_group }}"
10 mode: '2775'
11 become: true
12 loop:
13 - "{{ homeassistant_docker_base_path }}/reverse-proxy"
14 - "{{ homeassistant_docker_base_path }}/reverse-proxy/data"
15 - "{{ homeassistant_docker_base_path }}/reverse-proxy/letsencrypt"
16
17- name: Create CrowdSec directories
18 ansible.builtin.file:
19 path: "{{ item }}"
20 state: directory
21 owner: "{{ homeassistant_docker_owner }}"
22 group: "{{ homeassistant_docker_group }}"
23 mode: '2775'
24 become: true
25 loop:
26 - "{{ homeassistant_docker_base_path }}/reverse-proxy/crowdsec-config"
27 - "{{ homeassistant_docker_base_path }}/reverse-proxy/crowdsec-db"
28 when: homeassistant_crowdsec_enabled | bool
29
30- name: Deploy CrowdSec acquisition config
31 ansible.builtin.template:
32 src: crowdsec-acquis.yaml.j2
33 dest: "{{ homeassistant_docker_base_path }}/reverse-proxy/crowdsec-config/acquis.yaml"
34 owner: root
35 group: root
36 mode: '0644'
37 become: true
38 when: homeassistant_crowdsec_enabled | bool
39 notify: restart reverse-proxy
40
41- name: Deploy CrowdSec local config override
42 ansible.builtin.template:
43 src: crowdsec-config.yaml.local.j2
44 dest: "{{ homeassistant_docker_base_path }}/reverse-proxy/crowdsec-config/config.yaml.local"
45 owner: root
46 group: root
47 mode: '0644'
48 become: true
49 when: homeassistant_crowdsec_enabled | bool
50 notify: restart reverse-proxy
51
52- name: Deploy reverse proxy Docker Compose file
53 ansible.builtin.template:
54 src: npm-compose.yml.j2
55 dest: "{{ homeassistant_docker_base_path }}/reverse-proxy/docker-compose.yaml"
56 owner: "{{ homeassistant_docker_owner }}"
57 group: "{{ homeassistant_docker_group }}"
58 mode: '0664'
59 become: true
60 notify: restart reverse-proxy
61
62- name: Check if reverse proxy directory exists
63 ansible.builtin.stat:
64 path: "{{ homeassistant_docker_base_path }}/reverse-proxy"
65 register: npm_dir_stat
66 changed_when: false
67 check_mode: false
68
69- name: Start reverse proxy services
70 community.docker.docker_compose_v2:
71 project_src: "{{ homeassistant_docker_base_path }}/reverse-proxy"
72 state: present
73 register: npm_start_result
74 check_mode: false
75 when:
76 - npm_dir_stat.stat.exists
77 - not ansible_check_mode
78
79- name: Display reverse proxy deployment summary
80 ansible.builtin.debug:
81 msg: |
82 Reverse Proxy Deployment:
83 - NPM Status: {{ 'Started' if npm_start_result is defined and npm_start_result is changed else 'Already running' }}
84 - Admin UI: http://{{ ansible_default_ipv4.address }}:{{ homeassistant_npm_admin_port }}
85 - HTTP: port {{ homeassistant_npm_http_port }}
86 - HTTPS: port {{ homeassistant_npm_https_port }}
87 - Network: {{ homeassistant_npm_network_name }} ({{ homeassistant_npm_network_subnet }})
88 - CrowdSec: {{ 'Enabled' if homeassistant_crowdsec_enabled else 'Disabled' }}
89 {% if homeassistant_crowdsec_enabled %}
90 - CrowdSec LAPI: http://{{ homeassistant_crowdsec_lapi_host }}:{{ homeassistant_crowdsec_lapi_port }}
91 {% endif %}
92