{ config, pkgs, lib, mkDomain, ... }: { # matrix-synapse /**/ services.matrix-synapse = { #enable = true; settings = { server_name = "${config.networking.domain}"; public_baseurl = mkDomain "matrix"; url_preview_enabled = false; max_upload_size = "100M"; trusted_key_servers = [ {server_name = "matrix.org";} {server_name = "dodsorf.as";} {server_name = "pvv.ntnu.no";} ]; listeners = [ { bind_addresses = [ "127.0.0.1" ]; port = 8008; resources = [ { compress = true; names = [ "client" ]; } { compress = false; names = [ "federation" ]; } ]; tls = false; type = "http"; x_forwarded = true; } ]; }; }; services.nginx.virtualHosts.${mkDomain "matrix"} = lib.mkIf config.services.matrix-synapse.enable { forceSSL = true; # addSSL = true; enableACME = true; #useACMEHost = acmeDomain; locations."/_matrix" = { proxyPass = "http://127.0.0.1:${toString (builtins.elemAt 0 config.services.matrix-synaps.listeners).port}"; #proxyWebsockets = true; extraConfig = '' client_max_body_size ${config.services.matrix-synaps.max_upload_size}; ''; }; locations."/_synapse/client" = { proxyPass = "http://127.0.0.1:${toString (builtins.elemAt 0 config.services.matrix-synaps.listeners).port}/_synapse/client"; #proxyWebsockets = true; }; }; /**/ }