diff options
Diffstat (limited to 'hosts/surtr/matrix/default.nix')
-rw-r--r-- | hosts/surtr/matrix/default.nix | 35 |
1 files changed, 28 insertions, 7 deletions
diff --git a/hosts/surtr/matrix/default.nix b/hosts/surtr/matrix/default.nix index 2ef78b3d..6a955b40 100644 --- a/hosts/surtr/matrix/default.nix +++ b/hosts/surtr/matrix/default.nix | |||
@@ -79,16 +79,34 @@ | |||
79 | { addr = "0.0.0.0"; port = 8448; ssl = true; } | 79 | { addr = "0.0.0.0"; port = 8448; ssl = true; } |
80 | { addr = "[::0]"; port = 8448; ssl = true; } | 80 | { addr = "[::0]"; port = 8448; ssl = true; } |
81 | ]; | 81 | ]; |
82 | locations = let | 82 | extraConfig = '' |
83 | synapse = { | 83 | add_header Strict-Transport-Security "max-age=63072000" always; |
84 | proxyPass = "http://matrix-synapse"; | 84 | |
85 | add_header Access-Control-Allow-Origin '*'; | ||
86 | add_header Access-Control-Allow-Methods 'GET, POST, PUT, DELETE, OPTIONS'; | ||
87 | add_header Access-Control-Allow-Headers 'X-Requested-With, Content-Type, Authorization'; | ||
88 | add_header Access-Control-Max-Age 7200; | ||
89 | ''; | ||
90 | locations = { | ||
91 | "/_matrix".proxyPass = "http://matrix-synapse"; | ||
92 | "/_synapse/client".proxyPass = "http://matrix-synapse"; | ||
93 | "= /.well-known/matrix/server" = { | ||
85 | extraConfig = '' | 94 | extraConfig = '' |
86 | add_header Strict-Transport-Security "max-age=63072000" always; | 95 | add_header Content-Type application/json; |
87 | ''; | 96 | ''; |
97 | return = "200 '${builtins.toJSON { | ||
98 | "m.server" = "synapse.li:443"; | ||
99 | }}'"; | ||
100 | }; | ||
101 | "= /.well-known/matrix/client" = { | ||
102 | extraConfig = '' | ||
103 | add_header Content-Type application/json; | ||
104 | ''; | ||
105 | return = "200 '${builtins.toJSON { | ||
106 | "m.homeserver" = { "base_url" = "https://synapse.li"; }; | ||
107 | "m.identity_server" = { "base_url" = "https://vector.im"; }; | ||
108 | }}'"; | ||
88 | }; | 109 | }; |
89 | in { | ||
90 | "/_matrix" = synapse; | ||
91 | "/_synapse/client" = synapse; | ||
92 | "/".return = "301 https://element.synapse.li$request_uri"; | 110 | "/".return = "301 https://element.synapse.li$request_uri"; |
93 | }; | 111 | }; |
94 | }; | 112 | }; |
@@ -98,6 +116,9 @@ | |||
98 | sslCertificate = "/run/credentials/nginx.service/element.synapse.li.pem"; | 116 | sslCertificate = "/run/credentials/nginx.service/element.synapse.li.pem"; |
99 | sslCertificateKey = "/run/credentials/nginx.service/element.synapse.li.key.pem"; | 117 | sslCertificateKey = "/run/credentials/nginx.service/element.synapse.li.key.pem"; |
100 | sslTrustedCertificate = "/run/credentials/nginx.service/element.synapse.li.chain.pem"; | 118 | sslTrustedCertificate = "/run/credentials/nginx.service/element.synapse.li.chain.pem"; |
119 | extraConfig = '' | ||
120 | add_header Strict-Transport-Security "max-age=63072000" always; | ||
121 | ''; | ||
101 | 122 | ||
102 | root = pkgs.element-web.override { | 123 | root = pkgs.element-web.override { |
103 | conf = { | 124 | conf = { |