summaryrefslogtreecommitdiff
path: root/playbooks/roles/nginx-proxy
diff options
context:
space:
mode:
authorElizabeth Hunt <me@liz.coffee>2025-04-27 21:15:30 -0700
committerElizabeth Hunt <me@liz.coffee>2025-04-27 21:25:52 -0700
commitdaef0cf448af17357b552245f39067a9d340ce3d (patch)
treef65a660f7232f057b0c14e477c166006bfb83f87 /playbooks/roles/nginx-proxy
parent1dcdfe34a74708f88aad68af965f4bb5c79adff1 (diff)
downloadinfra-daef0cf448af17357b552245f39067a9d340ce3d.tar.gz
infra-daef0cf448af17357b552245f39067a9d340ce3d.zip
Waow
Diffstat (limited to 'playbooks/roles/nginx-proxy')
-rw-r--r--playbooks/roles/nginx-proxy/tasks/main.yml26
-rw-r--r--playbooks/roles/nginx-proxy/templates/docker-compose.yml19
-rw-r--r--playbooks/roles/nginx-proxy/templates/toplevel.conf.d/stream.conf46
3 files changed, 74 insertions, 17 deletions
diff --git a/playbooks/roles/nginx-proxy/tasks/main.yml b/playbooks/roles/nginx-proxy/tasks/main.yml
index 50958e7..aa7f922 100644
--- a/playbooks/roles/nginx-proxy/tasks/main.yml
+++ b/playbooks/roles/nginx-proxy/tasks/main.yml
@@ -1,17 +1,13 @@
---
-- name: Build nginx-proxy compose dirs
- ansible.builtin.file:
- state: directory
- dest: '{{ nginx_proxy_base }}/{{ item.path }}'
- with_filetree: '../templates'
- when: item.state == 'directory'
-
-- name: Build nginx-proxy compose files
- ansible.builtin.template:
- src: '{{ item.src }}'
- dest: '{{ nginx_proxy_base }}/{{ item.path }}'
- with_filetree: '../templates'
- when: item.state == 'file'
- notify:
- - (Re)start nginx-proxy
+- name: Deploy nginx-proxy
+ ansible.builtin.import_tasks: manage-docker-compose-service.yml
+ vars:
+ service_name: nginx-proxy
+ template_render_dir: "../templates"
+ service_destination_dir: "{{ nginx_proxy_base }}"
+ state: restarted
+# can't rollout the nginx-proxy without a parent reverse proxy. which
+# would need a reverse proxy to rollout. which would need a... yeah you
+# get the idea.
+# rollout_services:
diff --git a/playbooks/roles/nginx-proxy/templates/docker-compose.yml b/playbooks/roles/nginx-proxy/templates/docker-compose.yml
index e0f56c4..c97f858 100644
--- a/playbooks/roles/nginx-proxy/templates/docker-compose.yml
+++ b/playbooks/roles/nginx-proxy/templates/docker-compose.yml
@@ -5,11 +5,24 @@ services:
image: nginxproxy/nginx-proxy
container_name: nginx-proxy
ports:
+ # http
- "80:80"
- "443:443"
+ # smtp
+ - "25:25"
+ - "465:465"
+ - "587:587"
+ # imap
+ - "993:993"
+ # sieve
+ - "4190:4190"
volumes:
- /var/run/docker.sock:/tmp/docker.sock:ro
- {{ nginx_proxy_base }}/certs:/etc/nginx/certs
+ - {{ nginx_proxy_base }}/toplevel.conf.d:/etc/nginx/toplevel.conf.d
+ environment:
+ - TZ={{ timezone }}
+ - DEPLOYMENT_TIME={{ now() }}
networks:
- proxy
labels:
@@ -24,8 +37,10 @@ services:
- acme:/etc/acme.sh
- {{ nginx_proxy_base }}/certs:/etc/nginx/certs
environment:
- - "DEFAULT_EMAIL={{ certs_email }}"
- - "ACME_CHALLENGE=DNS-01"
+ - TZ={{ timezone }}
+ - DEPLOYMENT_TIME={{ now() }}
+ - 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
diff --git a/playbooks/roles/nginx-proxy/templates/toplevel.conf.d/stream.conf b/playbooks/roles/nginx-proxy/templates/toplevel.conf.d/stream.conf
new file mode 100644
index 0000000..7e3b39d
--- /dev/null
+++ b/playbooks/roles/nginx-proxy/templates/toplevel.conf.d/stream.conf
@@ -0,0 +1,46 @@
+stream {
+ log_format basic '$proxy_protocol_addr - [$time_local] '
+ '$protocol $status $bytes_sent $bytes_received '
+ '$session_time';
+ upstream imaps {
+ server {{ vpn_proxy_filter_container_name }}:993;
+ }
+ upstream smtps {
+ server {{ vpn_proxy_filter_container_name }}:465;
+ }
+ upstream smtptls {
+ server {{ vpn_proxy_filter_container_name }}:587;
+ }
+ upstream smtp {
+ server {{ vpn_proxy_filter_container_name }}:25;
+ }
+ upstream managesieve {
+ server {{ vpn_proxy_filter_container_name }}:4190;
+ }
+
+ server {
+ listen 993;
+ proxy_pass imaps;
+ proxy_protocol on;
+ }
+ server {
+ listen 25;
+ proxy_pass smtp;
+ proxy_protocol on;
+ }
+ server {
+ listen 587;
+ proxy_pass smtptls;
+ proxy_protocol on;
+ }
+ server {
+ listen 465;
+ proxy_pass smtps;
+ proxy_protocol on;
+ }
+ server {
+ listen 4190;
+ proxy_pass managesieve;
+ proxy_protocol on;
+ }
+}