From eb4c9adb0431736dac5cbc23c96604d29b0a0aec Mon Sep 17 00:00:00 2001
From: Edwin Lyon <53972157+practical-engelbart@users.noreply.github.com>
Date: Fri, 3 Sep 2021 16:43:07 -0700
Subject: [PATCH] Create matrix.conf

Added Matrix server proxy config
---
 nginx/matrix.conf | 70 +++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 70 insertions(+)
 create mode 100644 nginx/matrix.conf

diff --git a/nginx/matrix.conf b/nginx/matrix.conf
new file mode 100644
index 0000000..b33505b
--- /dev/null
+++ b/nginx/matrix.conf
@@ -0,0 +1,70 @@
+server {
+    listen 443 ssl http2;
+    listen [::]:443 ssl http2;
+
+    listen 8448 ssl http2 default_server;
+    listen [::]:8448 ssl http2 default_server;
+
+    server_name matrix.thelyoncompany.com;
+    root /var/www/matrix.thelyoncompany.com/public/;
+
+    ssl_certificate /etc/letsencrypt/live/email.thelyoncompany.com/fullchain.pem;  
+    ssl_certificate_key /etc/letsencrypt/live/email.thelyoncompany.com/privkey.pem;  
+    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
+
+    include /etc/nginx/snippets/ssl.conf;
+    ssl_trusted_certificate /etc/letsencrypt/live/email.thelyoncompany.com/chain.pem;  
+  
+    include /etc/nginx/snippets/headers.conf;        
+    include /etc/nginx/snippets/letsencrypt.conf;
+
+    error_page 404 /index.html;
+
+    if ($http_referer ~ "semalt\.com|badsite\.net|youtube\.com|leakix\.net|example\.com")  {
+        return 404;
+    }
+
+    location / {
+        try_files $uri $uri/ $uri.html =404;
+    }
+
+    location /.well-known/matrix/client {
+        return 200 '{"m.homeserver": {"base_url": "https://matrix.thelyoncompany.com"}}';
+        add_header Content-Type application/json;
+        add_header Access-Control-Allow-Origin *;
+        add_header Timing-Allow-Origin 1h;
+    }
+
+    location /_matrix {
+        proxy_pass http://localhost:8008;
+        proxy_set_header Upgrade           $http_upgrade;
+        proxy_set_header Connection        $connection_upgrade;
+        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_set_header X-Forwarded-Host  $host;
+        proxy_set_header X-Forwarded-Port  $server_port;
+        client_max_body_size 10M;
+    }
+
+    location = /favicon.ico {
+        log_not_found off;
+        access_log    off;
+    }
+
+    location = /robots.txt {
+        log_not_found off;
+        access_log    off;
+    }
+
+    location ~ /\. {
+        deny all;
+        access_log off;
+        log_not_found off;
+    }  
+    
+    location ~* (?:#.*#|\.(?:bak|conf|dist|fla|in[ci]|log|orig|psd|sh|sql|sw[op])|~)$ {
+        deny all;
+    }
+}