diff --git a/modules/matrix-homeserver/default.nix b/modules/matrix-homeserver/default.nix index ee67cc5f69d1131e713b8aae33945c301c7f9ed6..00aa0db63fa09e2db6d9cf41ee29373b08d9e019 100644 --- a/modules/matrix-homeserver/default.nix +++ b/modules/matrix-homeserver/default.nix @@ -54,18 +54,17 @@ in { settings = mkOption { type = settingsFormat.type; - apply = recursiveUpdate cfg.defaultSettings; default = {}; description = '' https://matrix-org.github.io/synapse/latest/usage/configuration/homeserver_sample_config.html ''; }; - defaultSettings = mkOption { - type = settingsFormat.type; - default = import ./settings.nix inputs; + recommendedSettings = mkOption { + type = types.bool; + default = false; description = '' - Default settings (i.e. *my* settings). Can be overwritten by setting them to '{}'. + Include recommended synapse settings, tuned for a small VPS instance with a few users (see 'recommended-settings.nix'). ''; }; @@ -189,14 +188,13 @@ in { assertion = !config.services.matrix-synapse.enable; message = "Cannot use services.matrix-synapse and queezle.matrix-homeserver at the same time."; } + ]; + + queezle.matrix-homeserver.settings = mkMerge [ + (mkIf cfg.recommendedSettings (import ./recommended-settings.nix inputs)) { - assertion = config.queezle.matrix-homeserver.settings ? max_upload_size; - message = "queezle.matrix-homeserver.settings.max_upload_size not set"; + server_name = cfg.serverName; } ]; - - queezle.matrix-homeserver.settings = { - server_name = cfg.serverName; - }; }; } diff --git a/modules/matrix-homeserver/postgresql.nix b/modules/matrix-homeserver/postgresql.nix index 2fd2cfced9033679f6d4338c9eb6d4a6f4260440..6d2111d4640cc563b2228315f9d7e38baf9c0399 100644 --- a/modules/matrix-homeserver/postgresql.nix +++ b/modules/matrix-homeserver/postgresql.nix @@ -4,6 +4,7 @@ with lib; let cfg = config.queezle.matrix-homeserver; in { + # TODO dedicated enable config = mkIf cfg.enable { # postgresql database service services.postgresql = { diff --git a/modules/matrix-homeserver/settings.nix b/modules/matrix-homeserver/recommended-settings.nix similarity index 89% rename from modules/matrix-homeserver/settings.nix rename to modules/matrix-homeserver/recommended-settings.nix index 2bdf726e38d9a92516ec6d2c574271deb4b6a013..3baab1bb9ead1888148b9126b2c4c5b6047b8959 100644 --- a/modules/matrix-homeserver/settings.nix +++ b/modules/matrix-homeserver/recommended-settings.nix @@ -16,9 +16,7 @@ in { global_factor = 4.0; }; - # Set to default value because it needs to be configured on nginx - max_upload_size = "50M"; - + # Generate thumbnails matching the resolution requested by clients dynamic_thumbnails = true; url_preview_enabled = true; @@ -44,14 +42,11 @@ in { "fec0::/10" ]; - # TODO TURN - enable_registration = true; registration_requires_token = true; bcrypt_rounds = 14; # Benchmarked to take >0.5s on an AMD Ryzen 9 5900X - # TODO Metrics - + # Report anonymized usage statistics report_stats = false; trusted_key_servers = [ @@ -64,6 +59,4 @@ in { minimum_length = 16; }; }; - - # TODO Push }