From 6738a335afbfa3e4d8a2b1480ba4355b0f8ca2ef Mon Sep 17 00:00:00 2001 From: justin Date: Sat, 6 Jun 2026 07:02:50 -0500 Subject: [PATCH] infra: nginx vhost for listmonk-hc admin portal (lists-hc.performancewest.net -> 127.0.0.1:9101, LE cert) --- infra/nginx/pw-listmonk-hc.conf | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 infra/nginx/pw-listmonk-hc.conf diff --git a/infra/nginx/pw-listmonk-hc.conf b/infra/nginx/pw-listmonk-hc.conf new file mode 100644 index 0000000..0c751db --- /dev/null +++ b/infra/nginx/pw-listmonk-hc.conf @@ -0,0 +1,33 @@ +# Listmonk-HC (healthcare) — lists-hc.performancewest.net +server { + listen 443 ssl; + http2 on; + server_name lists-hc.performancewest.net; + + ssl_certificate /etc/letsencrypt/live/lists-hc.performancewest.net/fullchain.pem; + ssl_certificate_key /etc/letsencrypt/live/lists-hc.performancewest.net/privkey.pem; + ssl_protocols TLSv1.2 TLSv1.3; + ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256; + ssl_session_cache shared:SSL:10m; + add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always; + + client_max_body_size 50m; + + location / { + proxy_pass http://127.0.0.1:9101; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + proxy_http_version 1.1; + proxy_read_timeout 300s; + proxy_send_timeout 300s; + } + location /.well-known/acme-challenge/ { root /var/www/certbot; } +} +server { + listen 80; + server_name lists-hc.performancewest.net; + location /.well-known/acme-challenge/ { root /var/www/certbot; } + location / { return 301 https://$host$request_uri; } +}