summaryrefslogtreecommitdiff
path: root/playbooks/roles/nginx_proxy/templates
diff options
context:
space:
mode:
authorElizabeth Hunt <me@liz.coffee>2025-05-04 00:10:22 -0700
committerElizabeth Hunt <me@liz.coffee>2025-05-04 00:35:51 -0700
commitc3e9305bce9fd1aaf165779fb46570c683750e6f (patch)
treedcc01e3d35abd0647f7a053a00d9e3f1f91072d1 /playbooks/roles/nginx_proxy/templates
parent7106b304324b3a7c4dc5fa25432f08041cbc41cb (diff)
downloadinfra-c3e9305bce9fd1aaf165779fb46570c683750e6f.tar.gz
infra-c3e9305bce9fd1aaf165779fb46570c683750e6f.zip
Tried to use docker ingress to solve x-real-ip on mail daemon but it didn't work for other ports
Diffstat (limited to 'playbooks/roles/nginx_proxy/templates')
-rw-r--r--playbooks/roles/nginx_proxy/templates/docker-compose.yml58
-rw-r--r--playbooks/roles/nginx_proxy/templates/toplevel.conf.d/stream.conf55
2 files changed, 113 insertions, 0 deletions
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..33b3243
--- /dev/null
+++ b/playbooks/roles/nginx_proxy/templates/docker-compose.yml
@@ -0,0 +1,58 @@
+---
+
+services:
+ nginx-proxy:
+ 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"
+ # src
+ - "2222:2222"
+ 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={{ deployment_time }}
+ - NO_COLOR=1
+ - LOG_JSON=true
+ - TRUST_DOWNSTREAM_PROXY=false
+ 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
+ - {{ nginx_proxy_base }}/certs:/etc/nginx/certs
+ environment:
+ - TZ={{ timezone }}
+ - DEPLOYMENT_TIME={{ deployment_time }}
+ - 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
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..3e7c125
--- /dev/null
+++ b/playbooks/roles/nginx_proxy/templates/toplevel.conf.d/stream.conf
@@ -0,0 +1,55 @@
+{% if not homelab_build %}
+
+stream {
+ 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;
+ }
+
+ upstream src {
+ server {{ vpn_proxy_filter_container_name }}:2222;
+ }
+
+ 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;
+ }
+ server {
+ listen 2222;
+ proxy_pass src;
+ }
+}
+
+{% endif %}