summary refs log tree commit diff
path: root/host/Rory-nginx/services/matrix/synapse/workers/stream-writers/event-stream-writer.nix
diff options
context:
space:
mode:
authorRory& <root@rory.gay>2024-07-04 00:47:48 +0200
committerRory& <root@rory.gay>2024-07-04 14:45:02 +0200
commit983815864d6d052b3d46685feea02959e4b2238b (patch)
tree2a24ffa9e0c33f62d634ffb102937ea1cba1a36b /host/Rory-nginx/services/matrix/synapse/workers/stream-writers/event-stream-writer.nix
parentSynapse main cleanup (diff)
downloadRory-Open-Architecture-983815864d6d052b3d46685feea02959e4b2238b.tar.xz
Synapse workers work
Diffstat (limited to '')
-rw-r--r--host/Rory-nginx/services/matrix/synapse/workers/stream-writers/event-stream-writer.nix41
1 files changed, 41 insertions, 0 deletions
diff --git a/host/Rory-nginx/services/matrix/synapse/workers/stream-writers/event-stream-writer.nix b/host/Rory-nginx/services/matrix/synapse/workers/stream-writers/event-stream-writer.nix
new file mode 100644
index 0000000..af7e544
--- /dev/null
+++ b/host/Rory-nginx/services/matrix/synapse/workers/stream-writers/event-stream-writer.nix
@@ -0,0 +1,41 @@
+
+{ config, pkgs, lib, ... }:
+let
+  cfg = config.services.matrix-synapse;
+  streamWriters = lib.range 0 (cfg.eventStreamWriters - 1);
+in
+{
+  services.matrix-synapse = {
+    settings = {
+      instance_map = lib.listToAttrs (lib.map (port: {
+        name = "stream-writer-${toString port}";
+        value = {
+          path = "/run/matrix-synapse/stream-writer-${toString port}.sock";
+        };
+      }) streamWriters);
+
+      stream_writers = {
+        events = lib.map (index: "stream-writer-events-${toString index}") streamWriters;
+      };
+    };
+
+    workers = lib.listToAttrs (lib.map (index: {
+      name = "stream-writer-${toString index}";
+      value = {
+        worker_app = "synapse.app.generic_worker";
+        worker_listeners = [
+          {
+            type = "http";
+            path = "/run/matrix-synapse/stream-writer-${toString index}.sock";
+            resources = [
+              {
+                names = ["replication"];
+                compress = false;
+              }
+            ];
+          }
+        ];
+      };
+    }) streamWriters);
+  };
+}
\ No newline at end of file