2023-02-25 00:03:29 +01:00
|
|
|
{ config, pkgs, lib, mkDomain, ... }:
|
|
|
|
{
|
|
|
|
# matrix-synapse
|
|
|
|
/**/
|
|
|
|
services.matrix-synapse = {
|
|
|
|
#enable = true;
|
|
|
|
settings = {
|
2024-08-13 16:26:58 +02:00
|
|
|
server_name = "${config.networking.domain}";
|
2023-02-25 00:03:29 +01:00
|
|
|
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;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
/**/
|
|
|
|
}
|