|
|
|
@ -5,9 +5,8 @@ with lib; |
|
|
|
|
let |
|
|
|
|
cfg = config.services.matrix-synapse; |
|
|
|
|
logConfigFile = pkgs.writeText "log_config.yaml" cfg.logConfig; |
|
|
|
|
mkResource = r: ''{names: ${builtins.toJSON r.names}, compress: ${fromBool r.compress}}''; |
|
|
|
|
mkListener = l: ''{port: ${toString l.port}, bind_address: "${l.bind_address}", type: ${l.type}, tls: ${fromBool l.tls}, x_forwarded: ${fromBool l.x_forwarded}, resources: [${concatStringsSep "," (map mkResource l.resources)}]}''; |
|
|
|
|
fromBool = x: if x then "true" else "false"; |
|
|
|
|
mkResource = r: ''{names: ${builtins.toJSON r.names}, compress: ${boolToString r.compress}}''; |
|
|
|
|
mkListener = l: ''{port: ${toString l.port}, bind_address: "${l.bind_address}", type: ${l.type}, tls: ${boolToString l.tls}, x_forwarded: ${boolToString l.x_forwarded}, resources: [${concatStringsSep "," (map mkResource l.resources)}]}''; |
|
|
|
|
configFile = pkgs.writeText "homeserver.yaml" '' |
|
|
|
|
${optionalString (cfg.tls_certificate_path != null) '' |
|
|
|
|
tls_certificate_path: "${cfg.tls_certificate_path}" |
|
|
|
@ -18,7 +17,7 @@ tls_private_key_path: "${cfg.tls_private_key_path}" |
|
|
|
|
${optionalString (cfg.tls_dh_params_path != null) '' |
|
|
|
|
tls_dh_params_path: "${cfg.tls_dh_params_path}" |
|
|
|
|
''} |
|
|
|
|
no_tls: ${fromBool cfg.no_tls} |
|
|
|
|
no_tls: ${boolToString cfg.no_tls} |
|
|
|
|
${optionalString (cfg.bind_port != null) '' |
|
|
|
|
bind_port: ${toString cfg.bind_port} |
|
|
|
|
''} |
|
|
|
@ -30,7 +29,7 @@ bind_host: "${cfg.bind_host}" |
|
|
|
|
''} |
|
|
|
|
server_name: "${cfg.server_name}" |
|
|
|
|
pid_file: "/var/run/matrix-synapse.pid" |
|
|
|
|
web_client: ${fromBool cfg.web_client} |
|
|
|
|
web_client: ${boolToString cfg.web_client} |
|
|
|
|
${optionalString (cfg.public_baseurl != null) '' |
|
|
|
|
public_baseurl: "${cfg.public_baseurl}" |
|
|
|
|
''} |
|
|
|
@ -58,8 +57,8 @@ media_store_path: "/var/lib/matrix-synapse/media" |
|
|
|
|
uploads_path: "/var/lib/matrix-synapse/uploads" |
|
|
|
|
max_upload_size: "${cfg.max_upload_size}" |
|
|
|
|
max_image_pixels: "${cfg.max_image_pixels}" |
|
|
|
|
dynamic_thumbnails: ${fromBool cfg.dynamic_thumbnails} |
|
|
|
|
url_preview_enabled: ${fromBool cfg.url_preview_enabled} |
|
|
|
|
dynamic_thumbnails: ${boolToString cfg.dynamic_thumbnails} |
|
|
|
|
url_preview_enabled: ${boolToString cfg.url_preview_enabled} |
|
|
|
|
${optionalString (cfg.url_preview_enabled == true) '' |
|
|
|
|
url_preview_ip_range_blacklist: ${builtins.toJSON cfg.url_preview_ip_range_blacklist} |
|
|
|
|
url_preview_ip_range_whitelist: ${builtins.toJSON cfg.url_preview_ip_range_whitelist} |
|
|
|
@ -67,10 +66,10 @@ url_preview_url_blacklist: ${builtins.toJSON cfg.url_preview_url_blacklist} |
|
|
|
|
''} |
|
|
|
|
recaptcha_private_key: "${cfg.recaptcha_private_key}" |
|
|
|
|
recaptcha_public_key: "${cfg.recaptcha_public_key}" |
|
|
|
|
enable_registration_captcha: ${fromBool cfg.enable_registration_captcha} |
|
|
|
|
enable_registration_captcha: ${boolToString cfg.enable_registration_captcha} |
|
|
|
|
turn_uris: ${builtins.toJSON cfg.turn_uris} |
|
|
|
|
turn_shared_secret: "${cfg.turn_shared_secret}" |
|
|
|
|
enable_registration: ${fromBool cfg.enable_registration} |
|
|
|
|
enable_registration: ${boolToString cfg.enable_registration} |
|
|
|
|
${optionalString (cfg.registration_shared_secret != null) '' |
|
|
|
|
registration_shared_secret: "${cfg.registration_shared_secret}" |
|
|
|
|
''} |
|
|
|
@ -78,15 +77,15 @@ recaptcha_siteverify_api: "https://www.google.com/recaptcha/api/siteverify" |
|
|
|
|
turn_user_lifetime: "${cfg.turn_user_lifetime}" |
|
|
|
|
user_creation_max_duration: ${cfg.user_creation_max_duration} |
|
|
|
|
bcrypt_rounds: ${cfg.bcrypt_rounds} |
|
|
|
|
allow_guest_access: ${fromBool cfg.allow_guest_access} |
|
|
|
|
allow_guest_access: ${boolToString cfg.allow_guest_access} |
|
|
|
|
trusted_third_party_id_servers: ${builtins.toJSON cfg.trusted_third_party_id_servers} |
|
|
|
|
room_invite_state_types: ${builtins.toJSON cfg.room_invite_state_types} |
|
|
|
|
${optionalString (cfg.macaroon_secret_key != null) '' |
|
|
|
|
macaroon_secret_key: "${cfg.macaroon_secret_key}" |
|
|
|
|
''} |
|
|
|
|
expire_access_token: ${fromBool cfg.expire_access_token} |
|
|
|
|
enable_metrics: ${fromBool cfg.enable_metrics} |
|
|
|
|
report_stats: ${fromBool cfg.report_stats} |
|
|
|
|
expire_access_token: ${boolToString cfg.expire_access_token} |
|
|
|
|
enable_metrics: ${boolToString cfg.enable_metrics} |
|
|
|
|
report_stats: ${boolToString cfg.report_stats} |
|
|
|
|
signing_key_path: "/var/lib/matrix-synapse/homeserver.signing.key" |
|
|
|
|
key_refresh_interval: "${cfg.key_refresh_interval}" |
|
|
|
|
perspectives: |
|
|
|
|