summary refs log tree commit diff
path: root/modules/software-templates/synapse-workers/module.nix
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2025-02-18 11:18:56 +0100
committerRory& <root@rory.gay>2025-02-18 11:18:56 +0100
commit85f5ba751b5a922f7069e8f213b5c5b6f2e192df (patch)
tree614e9ca7e97527cc421a55945cdefbf4dc0a084c /modules/software-templates/synapse-workers/module.nix
parentSynapse work (diff)
downloadRory-Open-Architecture-85f5ba751b5a922f7069e8f213b5c5b6f2e192df.tar.xz
Synapse work
Diffstat (limited to 'modules/software-templates/synapse-workers/module.nix')
-rw-r--r--modules/software-templates/synapse-workers/module.nix91
1 files changed, 35 insertions, 56 deletions
diff --git a/modules/software-templates/synapse-workers/module.nix b/modules/software-templates/synapse-workers/module.nix

index 5a40045..b1d0ced 100644 --- a/modules/software-templates/synapse-workers/module.nix +++ b/modules/software-templates/synapse-workers/module.nix
@@ -11,29 +11,6 @@ let in { imports = [ - ./single/appservice.nix - ./single/background.nix - ./single/user-dir.nix - - ./auth.nix - ./client-reader.nix - ./event-creator.nix - ./federation-inbound.nix - ./federation-reader.nix - ./federation-sender.nix - ./media-repo.nix - ./pusher.nix - ./sync.nix - - ./stream-writers/account_data-stream-writer.nix - ./stream-writers/event-stream-writer.nix - ./stream-writers/presence-stream-writer.nix - ./stream-writers/push_rule-stream-writer.nix - ./stream-writers/receipt-stream-writer.nix - ./stream-writers/to_device-stream-writer.nix - ./stream-writers/typing-stream-writer.nix - - # ./stream-writers/shared-stream-writer.nix ]; options.services.matrix-synapse = { enableWorkers = lib.mkEnableOption "Enable dedicated workers"; @@ -77,39 +54,41 @@ in }; config = { - assertions = [ - { - assertion = cfg.enableWorkers -> cfg.nginxVirtualHostName != null; - message = "nginxVirtualHostName must be set when enableWorkers is true"; - } - - # Stream types and count limitations: https://github.com/element-hq/synapse/blob/develop/synapse/config/workers.py#L344 - { - assertion = lib.length cfg.settings.stream_writers.typing <= 1; - message = "Only one typing stream writer is supported"; - } - { - assertion = lib.length cfg.settings.stream_writers.to_device <= 1; - message = "Only one to_device stream writer is supported"; - } - { - assertion = lib.length cfg.settings.stream_writers.account_data <= 1; - message = "Only one account data stream writer is supported"; - } - # This may be outdated in the documentation...? - #{ - # assertion = cfg.receiptStreamWriters <= 1; - # message = "Only one receipt stream writer is supported"; - #} - { - assertion = lib.length cfg.settings.stream_writers.presence <= 1; - message = "Only one presence stream writer is supported"; - } - { - assertion = lib.length cfg.settings.stream_writers.push_rules <= 1; - message = "Only one push rule stream writer is supported"; - } - ]; + assertions = + [ + { + assertion = cfg.enableWorkers -> cfg.nginxVirtualHostName != null; + message = "nginxVirtualHostName must be set when enableWorkers is true"; + } + ] + ++ lib.optionals (cfg.settings ? stream_writers) [ + # Stream types and count limitations: https://github.com/element-hq/synapse/blob/develop/synapse/config/workers.py#L344 + { + assertion = cfg.settings.stream_writers ? typing -> lib.length cfg.settings.stream_writers.typing <= 1; + message = "Only one typing stream writer is supported"; + } + { + assertion = cfg.settings.stream_writers ? to_device -> lib.length cfg.settings.stream_writers.to_device <= 1; + message = "Only one to_device stream writer is supported"; + } + { + assertion = cfg.settings.stream_writers ? account_data -> lib.length cfg.settings.stream_writers.account_data <= 1; + message = "Only one account data stream writer is supported"; + } + # This may be outdated in the documentation...? + #{ + # assertion = cfg.receiptStreamWriters <= 1; + # message = "Only one receipt stream writer is supported"; + #} + { + assertion = cfg.settings.stream_writers ? presence -> lib.length cfg.settings.stream_writers.presence <= 1; + message = "Only one presence stream writer is supported"; + } + { + assertion = cfg.settings.stream_writers ? push_rules -> lib.length cfg.settings.stream_writers.push_rules <= 1; + message = "Only one push rule stream writer is supported"; + } + ]; # Matrix utility maps services.nginx.appendHttpConfig = ''