From d20e8f5cd2aa4be2a197452913997b6ead352c5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20Schr=C3=B6ter?= Date: Wed, 1 Feb 2023 20:20:27 +0100 Subject: [PATCH] feat(matrix): improve dendrite & element config --- services/matrix/dendrite.nix | 33 +++++++++++++++++---------------- services/matrix/element.nix | 16 ++++++++++++---- 2 files changed, 29 insertions(+), 20 deletions(-) diff --git a/services/matrix/dendrite.nix b/services/matrix/dendrite.nix index 803f393..8e447e2 100644 --- a/services/matrix/dendrite.nix +++ b/services/matrix/dendrite.nix @@ -4,7 +4,12 @@ let inherit (config.services) dendrite; server_name = "felschr.com"; domain = "matrix.${server_name}"; - connectionString = "postgresql:///dendrite?host=/run/postgresql"; + database = { + connection_string = "postgresql:///dendrite?host=/run/postgresql"; + max_open_conns = 10; + max_idle_conns = 2; + conn_max_lifetime = -1; + }; in { age.secrets.dendrite-private-key = { file = ../../secrets/dendrite/privateKey.age; @@ -19,26 +24,22 @@ in { enable = true; environmentFile = config.age.secrets.dendrite-env.path; settings = { - app_service_api.database.connection_string = connectionString; - federation_api.database.connection_string = connectionString; - key_server.database.connection_string = connectionString; - media_api.database.connection_string = connectionString; - mscs.database.connection_string = connectionString; - room_server.database.connection_string = connectionString; - sync_api.database.connection_string = connectionString; - user_api.account_database.connection_string = connectionString; - user_api.device_database.connection_string = connectionString; + app_service_api.database = database; + federation_api.database = database; + key_server.database = database; + media_api.database = database; + mscs.database = database; + room_server.database = database; + sync_api.database = database; + user_api.account_database = database; client_api.registration_shared_secret = "$REGISTRATION_SHARED_SECRET"; - # 2 megabytes in bytes - media_api.max_file_size_bytes = 2097152; + media_api.max_file_size_bytes = 10485760; # 10 MB mscs.mscs = [ - # spaces - "msc2836" - # threads - "msc2946" + "msc2836" # threads + "msc2946" # space summaries ]; federation_api.key_perspectives = [{ diff --git a/services/matrix/element.nix b/services/matrix/element.nix index 7458596..cf80adb 100644 --- a/services/matrix/element.nix +++ b/services/matrix/element.nix @@ -1,6 +1,8 @@ { config, pkgs, ... }: -let inherit (config.services.dendrite.settings.global) server_name; +let + inherit (config.services.dendrite.settings.global) server_name; + matrix_host = "matrix.${server_name}"; in { services.nginx.virtualHosts."element.felschr.com" = { forceSSL = true; @@ -8,8 +10,8 @@ in { root = pkgs.element-web.override { conf = { default_server_config."m.homeserver" = { - "base_url" = "https://matrix.${server_name}"; - "server_name" = "${server_name}"; + base_url = "https://${matrix_host}"; + server_name = "${server_name}"; }; disable_guests = true; features = { @@ -19,7 +21,13 @@ in { feature_group_calls = true; }; show_labs_settings = true; - roomDirectory.servers = [ "matrix.org" "gitter.im" "libera.chat" ]; + roomDirectory.servers = + [ server_name "matrix.org" "gitter.im" "libera.chat" ]; + enable_presence_by_hs_url = { + "https://${matrix_host}" = false; + "https://matrix.org" = false; + "https://matrix-client.matrix.org" = false; + }; jitsi.preferred_domain = "meet.element.io"; element_call.url = "https://call.element.io"; };