Synapse work
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 = ''
|