feat(services/synapse): add well-known

This commit is contained in:
Rustam Efimov 2026-04-14 21:58:54 +03:00
parent 7df9d7ef4f
commit d2949df2fb
No known key found for this signature in database

View file

@ -1,7 +1,15 @@
{ config, ... }: { config, ... }:
let let
inherit (config.machine.synapse) domain port; cfg = config.machine.synapse;
maxUploadSize = config.services.matrix-synapse.settings.max_upload_size; maxUploadSize = config.services.matrix-synapse.settings.max_upload_size;
clientConfig."m.homeserver".base_url = baseUrl;
serverConfig."m.server" = "${cfg.domain}:443";
mkWellKnown = data: ''
default_type application/json;
add_header Access-Control-Allow-Origin *;
return 200 '${builtins.toJSON data}';
'';
in in
{ {
systemd.services.nginx.serviceConfig.SupplementaryGroups = [ "matrix-synapse" ]; systemd.services.nginx.serviceConfig.SupplementaryGroups = [ "matrix-synapse" ];
@ -14,13 +22,15 @@ in
upstreams."matrix-synapse".servers = { upstreams."matrix-synapse".servers = {
"unix:/run/matrix-synapse/matrix-synapse.sock" = { }; "unix:/run/matrix-synapse/matrix-synapse.sock" = { };
}; };
virtualHosts.${domain} = { virtualHosts.${cfg.domain} = {
forceSSL = true; forceSSL = true;
enableACME = true; enableACME = true;
locations = { locations = {
"= /.well-known/matrix/server".extraConfig = mkWellKnown serverConfig;
"= /.well-known/matrix/client".extraConfig = mkWellKnown clientConfig;
"^~ /_matrix" = { "^~ /_matrix" = {
proxyPass = "http://127.0.0.1:${toString port}"; proxyPass = "http://127.0.0.1:${toString cfg.port}";
extraConfig = '' extraConfig = ''
limit_req zone=matrix burst=100 nodelay; limit_req zone=matrix burst=100 nodelay;
proxy_set_header Host $host; proxy_set_header Host $host;
@ -36,7 +46,7 @@ in
# Health check # Health check
"= /health" = { "= /health" = {
proxyPass = "http://127.0.0.1:${toString port}"; proxyPass = "http://127.0.0.1:${toString cfg.port}";
extraConfig = '' extraConfig = ''
access_log off; access_log off;
''; '';