summary refs log tree commit diff
path: root/host/Rory-nginx/hosts/rory.gay/matrix.nix
diff options
context:
space:
mode:
Diffstat (limited to 'host/Rory-nginx/hosts/rory.gay/matrix.nix')
-rwxr-xr-xhost/Rory-nginx/hosts/rory.gay/matrix.nix21
1 files changed, 20 insertions, 1 deletions
diff --git a/host/Rory-nginx/hosts/rory.gay/matrix.nix b/host/Rory-nginx/hosts/rory.gay/matrix.nix
index 6a638c3..f97504b 100755
--- a/host/Rory-nginx/hosts/rory.gay/matrix.nix
+++ b/host/Rory-nginx/hosts/rory.gay/matrix.nix
@@ -1,6 +1,25 @@
 {
   enableACME = true;
   addSSL = true;
-  locations."/_matrix".proxyPass = "http://192.168.1.5:8008"; 
+  locations."/_matrix" = {
+    proxyPass = "http://192.168.1.5:8008"; 
+    extraConfig = ''
+      if($request_method = 'OPTIONS') {
+        add_header 'Access-Control-Allow-Origin' '*';
+        add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
+        #
+        # Custom headers and headers various browsers *should* be OK with but aren't
+        #
+        add_header 'Access-Control-Allow-Headers' 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
+        #
+        # Tell client that this pre-flight info is valid for 20 days
+        #
+        add_header 'Access-Control-Max-Age' 1728000;
+        add_header 'Content-Type' 'text/plain; charset=utf-8';
+        add_header 'Content-Length' 0;
+        return 204;
+      }
+    '';
+  };
   locations."/_synapse/client".proxyPass = "http://192.168.1.5:8008";   
 }