summaryrefslogtreecommitdiff
path: root/playbooks/roles/nginx-proxy
diff options
context:
space:
mode:
authorElizabeth Hunt <me@liz.coffee>2025-03-15 00:50:34 -0700
committerElizabeth Hunt <me@liz.coffee>2025-03-15 00:50:34 -0700
commitfb7e6890d8516618fa3baec0edf84048e2b6601d (patch)
treea7bc5cfce71288ab69e8fa590d0f02df90c55385 /playbooks/roles/nginx-proxy
downloadinfra-fb7e6890d8516618fa3baec0edf84048e2b6601d.tar.gz
infra-fb7e6890d8516618fa3baec0edf84048e2b6601d.zip
a docker swarm
Diffstat (limited to 'playbooks/roles/nginx-proxy')
-rw-r--r--playbooks/roles/nginx-proxy/handlers/main.yml7
-rw-r--r--playbooks/roles/nginx-proxy/tasks/main.yml17
-rw-r--r--playbooks/roles/nginx-proxy/templates/docker-compose.yml38
3 files changed, 62 insertions, 0 deletions
diff --git a/playbooks/roles/nginx-proxy/handlers/main.yml b/playbooks/roles/nginx-proxy/handlers/main.yml
new file mode 100644
index 0000000..43302b5
--- /dev/null
+++ b/playbooks/roles/nginx-proxy/handlers/main.yml
@@ -0,0 +1,7 @@
+---
+
+- name: (Re)start nginx-proxy
+ ansible.builtin.service:
+ name: docker-compose@nginx-proxy
+ state: restarted
+ enabled: true
diff --git a/playbooks/roles/nginx-proxy/tasks/main.yml b/playbooks/roles/nginx-proxy/tasks/main.yml
new file mode 100644
index 0000000..9c14072
--- /dev/null
+++ b/playbooks/roles/nginx-proxy/tasks/main.yml
@@ -0,0 +1,17 @@
+---
+
+- name: Build nginx-proxy compose dirs
+ ansible.builtin.file:
+ state: directory
+ dest: '/etc/docker/compose/nginx-proxy/{{ item.path }}'
+ with_filetree: '../templates'
+ when: item.state == 'directory'
+
+- name: Build nginx-proxy compose files
+ ansible.builtin.template:
+ src: '{{ item.src }}'
+ dest: '/etc/docker/compose/nginx-proxy/{{ item.path }}'
+ with_filetree: '../templates'
+ when: item.state == 'file'
+ notify:
+ - (Re)start nginx-proxy
diff --git a/playbooks/roles/nginx-proxy/templates/docker-compose.yml b/playbooks/roles/nginx-proxy/templates/docker-compose.yml
new file mode 100644
index 0000000..fd49712
--- /dev/null
+++ b/playbooks/roles/nginx-proxy/templates/docker-compose.yml
@@ -0,0 +1,38 @@
+---
+
+services:
+ nginx-proxy:
+ image: nginxproxy/nginx-proxy
+ container_name: nginx-proxy
+ ports:
+ - "80:80"
+ - "443:443"
+ volumes:
+ - /var/run/docker.sock:/tmp/docker.sock:ro
+ - ./certs:/etc/nginx/certs
+ networks:
+ - proxy
+ labels:
+ - com.github.jrcs.letsencrypt_nginx_proxy_companion.nginx_proxy
+
+ nginx-acme-companion:
+ image: nginxproxy/acme-companion
+ depends_on:
+ - nginx-proxy
+ volumes:
+ - /var/run/docker.sock:/var/run/docker.sock:ro
+ - acme:/etc/acme.sh
+ - ./certs:/etc/nginx/certs
+ environment:
+ - "DEFAULT_EMAIL={{ certs_email }}"
+ - "ACME_CHALLENGE=DNS-01"
+ - "ACMESH_DNS_API_CONFIG={'DNS_API': 'dns_cf', 'CF_Key': '{{ cloudflare_token }}', 'CF_Email': '{{ cloudflare_email }}'}"
+ networks:
+ - proxy
+
+volumes:
+ acme:
+
+networks:
+ proxy:
+ name: proxy