summary refs log tree commit diff
path: root/host/Rory-nginx/services/matrix/synapse
diff options
context:
space:
mode:
Diffstat (limited to 'host/Rory-nginx/services/matrix/synapse')
-rwxr-xr-xhost/Rory-nginx/services/matrix/synapse/_synapse.monolith.nix96
-rw-r--r--host/Rory-nginx/services/matrix/synapse/caches.nix16
-rw-r--r--host/Rory-nginx/services/matrix/synapse/db.nix35
-rw-r--r--host/Rory-nginx/services/matrix/synapse/ratelimits.nix2
-rwxr-xr-xhost/Rory-nginx/services/matrix/synapse/synapse-main.nix75
-rw-r--r--host/Rory-nginx/services/matrix/synapse/workers/appservice.nix13
-rw-r--r--host/Rory-nginx/services/matrix/synapse/workers/background.nix13
-rw-r--r--host/Rory-nginx/services/matrix/synapse/workers/federation-sender.nix49
-rw-r--r--host/Rory-nginx/services/matrix/synapse/workers/module.nix91
-rw-r--r--host/Rory-nginx/services/matrix/synapse/workers/pusher.nix61
-rw-r--r--host/Rory-nginx/services/matrix/synapse/workers/stream-writers/__OLD__module.nix113
-rw-r--r--host/Rory-nginx/services/matrix/synapse/workers/stream-writers/event-stream-writer.nix62
12 files changed, 365 insertions, 261 deletions
diff --git a/host/Rory-nginx/services/matrix/synapse/_synapse.monolith.nix b/host/Rory-nginx/services/matrix/synapse/_synapse.monolith.nix
index 26c61a1..8bdaf19 100755
--- a/host/Rory-nginx/services/matrix/synapse/_synapse.monolith.nix
+++ b/host/Rory-nginx/services/matrix/synapse/_synapse.monolith.nix
@@ -1,4 +1,9 @@
-{ config, pkgs, lib, ... }:
+{
+  config,
+  pkgs,
+  lib,
+  ...
+}:
 
 {
   services.matrix-synapse = {
@@ -25,7 +30,7 @@
         max_long_retry_delay = "30s";
       };
 
-      event_cache_size = "1200K"; #defaults to 10K
+      event_cache_size = "1200K"; # defaults to 10K
       caches = {
         global_factor = 5000.0;
         cache_entry_ttl = "12h";
@@ -41,18 +46,26 @@
       # Alicia - figure this out later...
       #registration_shared_secret = builtins.exec ["cat" "/dev/urandom" "|" "tr" "-dc" "a-zA-Z0-9" "|" "fold" "-w" "256" "|" "head" "-n" "1"];
       registration_shared_secret_path = "/var/lib/matrix-synapse/registration_shared_secret.txt";
-      
+
       listeners = [
-        { 
+        {
           port = 8008;
-          bind_addresses = [ "192.168.1.2" "127.0.0.1" ];
+          bind_addresses = [
+            "192.168.1.2"
+            "127.0.0.1"
+          ];
           type = "http";
           tls = false;
           x_forwarded = true;
-          resources = [ {
-            names = [ "client" "federation" ];
-            compress = true;
-          } ];
+          resources = [
+            {
+              names = [
+                "client"
+                "federation"
+              ];
+              compress = true;
+            }
+          ];
         }
       ];
       dynamic_thumbnails = true;
@@ -171,42 +184,41 @@
     plugins = with pkgs.matrix-synapse-plugins; [
       # Alicia - need to port draupnir...
       #matrix-synapse-mjolnir-antispam
-#      matrix-synapse-pam
+      #      matrix-synapse-pam
     ];
-#    extraConfigFiles = [
-#        (pkgs.writeTextFile {
-#          name = "matrix-synapse-extra-config.yml";
-#          text = ''
-#            modules:
-#              - module: "pam_auth_provider.PAMAuthProvider"
-#                config:
-#                  create_users: true
-#                  skip_user_check: false
-#          '';
-#        })
-#      ];
+    #    extraConfigFiles = [
+    #        (pkgs.writeTextFile {
+    #          name = "matrix-synapse-extra-config.yml";
+    #          text = ''
+    #            modules:
+    #              - module: "pam_auth_provider.PAMAuthProvider"
+    #                config:
+    #                  create_users: true
+    #                  skip_user_check: false
+    #          '';
+    #        })
+    #      ];
   };
 
-    systemd.services.matrix-synapse-reg-token = {
-      description = "Random registration token for Synapse.";
-      before = ["matrix-synapse.service"]; # So the registration can be used by Synapse
-      wantedBy = ["multi-user.target"];
-      after = ["network.target"];
-
-      script = ''
-
-        if [ ! -f "registration_shared_secret.txt" ]
-        then
-          cat /dev/urandom | tr -dc a-zA-Z0-9 | fold -w 256 | head -n 1 > registration_shared_secret.txt
-        else
-          echo Not generating key, key exists;
-        fi'';
-      serviceConfig = {
-        User = "matrix-synapse";
-        Group = "matrix-synapse";
-        WorkingDirectory = "/var/lib/matrix-synapse";
-      };
+  systemd.services.matrix-synapse-reg-token = {
+    description = "Random registration token for Synapse.";
+    before = [ "matrix-synapse.service" ]; # So the registration can be used by Synapse
+    wantedBy = [ "multi-user.target" ];
+    after = [ "network.target" ];
+
+    script = ''
+
+      if [ ! -f "registration_shared_secret.txt" ]
+      then
+        cat /dev/urandom | tr -dc a-zA-Z0-9 | fold -w 256 | head -n 1 > registration_shared_secret.txt
+      else
+        echo Not generating key, key exists;
+      fi'';
+    serviceConfig = {
+      User = "matrix-synapse";
+      Group = "matrix-synapse";
+      WorkingDirectory = "/var/lib/matrix-synapse";
     };
+  };
 
 }
-
diff --git a/host/Rory-nginx/services/matrix/synapse/caches.nix b/host/Rory-nginx/services/matrix/synapse/caches.nix
index 6196129..16fe0fc 100644
--- a/host/Rory-nginx/services/matrix/synapse/caches.nix
+++ b/host/Rory-nginx/services/matrix/synapse/caches.nix
@@ -1,7 +1,15 @@
 {
-  gc_min_interval = [ "15m" "30m" "60m" ];
-  gc_thresholds = [ 10000 5000 2500 ];
-  event_cache_size = "12000K"; #defaults to 10K
+  gc_min_interval = [
+    "15m"
+    "30m"
+    "60m"
+  ];
+  gc_thresholds = [
+    10000
+    5000
+    2500
+  ];
+  event_cache_size = "12000K"; # defaults to 10K
   caches = {
     global_factor = 500000.0;
     cache_entry_ttl = "24h";
@@ -13,4 +21,4 @@
       min_cache_ttl = "6h";
     };
   };
-}
\ No newline at end of file
+}
diff --git a/host/Rory-nginx/services/matrix/synapse/db.nix b/host/Rory-nginx/services/matrix/synapse/db.nix
index c5edc51..d8dcde3 100644
--- a/host/Rory-nginx/services/matrix/synapse/db.nix
+++ b/host/Rory-nginx/services/matrix/synapse/db.nix
@@ -1,7 +1,8 @@
-{ 
+{
   workerName ? null,
-  dbGroup ? null
-}: {
+  dbGroup ? null,
+}:
+{
   name = "psycopg2";
   args = {
     user = "matrix-synapse-rory-gay";
@@ -9,13 +10,23 @@
     database = "matrix-synapse-rory-gay";
     host = "/run/postgresql";
     application_name = "matrix-synapse (rory.gay) - ${if workerName == null then throw "synapse/db.nix: workerName unspecified" else workerName}";
-    cp_min = if dbGroup == "small" then 2
-      else if dbGroup == "medium" then 5
-      else if dbGroup == "large" then 10
-      else throw "synapse/db.nix: Invalid dbGroup: ${if dbGroup == null then "null" else dbGroup}";
-    cp_max = if dbGroup == "small" then 2
-      else if dbGroup == "medium" then 10
-      else if dbGroup == "large" then 10
-      else throw "synapse/db.nix: Invalid dbGroup: ${if dbGroup == null then "null" else dbGroup}";
+    cp_min =
+      if dbGroup == "small" then
+        2
+      else if dbGroup == "medium" then
+        5
+      else if dbGroup == "large" then
+        10
+      else
+        throw "synapse/db.nix: Invalid dbGroup: ${if dbGroup == null then "null" else dbGroup}";
+    cp_max =
+      if dbGroup == "small" then
+        2
+      else if dbGroup == "medium" then
+        10
+      else if dbGroup == "large" then
+        10
+      else
+        throw "synapse/db.nix: Invalid dbGroup: ${if dbGroup == null then "null" else dbGroup}";
   };
-}
\ No newline at end of file
+}
diff --git a/host/Rory-nginx/services/matrix/synapse/ratelimits.nix b/host/Rory-nginx/services/matrix/synapse/ratelimits.nix
index 8165fe4..4f6b7db 100644
--- a/host/Rory-nginx/services/matrix/synapse/ratelimits.nix
+++ b/host/Rory-nginx/services/matrix/synapse/ratelimits.nix
@@ -53,4 +53,4 @@
     concurrent = 100;
   };
   federation_rr_transactions_per_room_per_second = 1;
-}
\ No newline at end of file
+}
diff --git a/host/Rory-nginx/services/matrix/synapse/synapse-main.nix b/host/Rory-nginx/services/matrix/synapse/synapse-main.nix
index 4dc13a8..acd842f 100755
--- a/host/Rory-nginx/services/matrix/synapse/synapse-main.nix
+++ b/host/Rory-nginx/services/matrix/synapse/synapse-main.nix
@@ -1,11 +1,14 @@
-{ config, pkgs, lib, ... }:
+{
+  config,
+  pkgs,
+  lib,
+  ...
+}:
 
 {
   # Worker plumbing examples: https://github.com/element-hq/synapse/blob/master/docker/configure_workers_and_start.py
   # Documentation: https://github.com/element-hq/synapse/blob/develop/docs/workers.md
-  imports = [
-    ./workers/module.nix
-  ];
+  imports = [ ./workers/module.nix ];
 
   services.matrix-synapse = {
     enable = true;
@@ -39,26 +42,36 @@
       };
 
       registration_shared_secret_path = "/var/lib/matrix-synapse/registration_shared_secret.txt";
-      
+
       listeners = [
-        { 
+        {
           port = 8008;
-          bind_addresses = [ "192.168.1.2" "127.0.0.1" ];
+          bind_addresses = [
+            "192.168.1.2"
+            "127.0.0.1"
+          ];
           type = "http";
           tls = false;
           x_forwarded = true;
-          resources = [ {
-            names = [ "client" "federation" ];
-            compress = false;
-          } ];
+          resources = [
+            {
+              names = [
+                "client"
+                "federation"
+              ];
+              compress = false;
+            }
+          ];
         }
-        { 
+        {
           type = "http";
           path = "/run/matrix-synapse/main.sock";
-          resources = [ {
-            names = [ "replication" ];
-            compress = false;
-          } ];
+          resources = [
+            {
+              names = [ "replication" ];
+              compress = false;
+            }
+          ];
         }
       ];
       dynamic_thumbnails = true;
@@ -67,7 +80,12 @@
         update_interval = 60;
       };
       url_preview_enabled = true;
-      database = (import ./db.nix { workerName = "main"; dbGroup = "medium"; });
+      database = (
+        import ./db.nix {
+          workerName = "main";
+          dbGroup = "medium";
+        }
+      );
       app_service_config_files = [
         #"/etc/matrix-synapse/appservice-registration.yaml"
         "/var/lib/matrix-synapse/modas-registration.yaml"
@@ -101,28 +119,25 @@
         "msc3916_authenticated_media_enabled" = true; # Authenticated media
       };
 
-
       redis = {
         enabled = true;
         path = "/run/redis-matrix-synapse/redis.sock";
       };
 
-
       instance_map = {
-        main = { # replication listener
+        main = {
+          # replication listener
           path = "/run/matrix-synapse/main.sock";
         };
       };
-    }
-    // import ./ratelimits.nix
-    // import ./caches.nix;
+    } // import ./ratelimits.nix // import ./caches.nix;
   };
 
   systemd.services.matrix-synapse-reg-token = {
     description = "Random registration token for Synapse.";
-    before = ["matrix-synapse.service"]; # So the registration can be used by Synapse
-    wantedBy = ["multi-user.target"];
-    after = ["network.target"];
+    before = [ "matrix-synapse.service" ]; # So the registration can be used by Synapse
+    wantedBy = [ "multi-user.target" ];
+    after = [ "network.target" ];
 
     script = ''
 
@@ -146,8 +161,6 @@
       user = "matrix-synapse";
     };
   };
-  
-  systemd.tmpfiles.rules = [
-    "D /run/redis-matrix-synapse 0755 matrix-synapse matrix-synapse"
-  ];
-}
\ No newline at end of file
+
+  systemd.tmpfiles.rules = [ "D /run/redis-matrix-synapse 0755 matrix-synapse matrix-synapse" ];
+}
diff --git a/host/Rory-nginx/services/matrix/synapse/workers/appservice.nix b/host/Rory-nginx/services/matrix/synapse/workers/appservice.nix
index 5f1323c..d259edd 100644
--- a/host/Rory-nginx/services/matrix/synapse/workers/appservice.nix
+++ b/host/Rory-nginx/services/matrix/synapse/workers/appservice.nix
@@ -1,6 +1,11 @@
-{ config, pkgs, lib, ... }:
+{
+  config,
+  pkgs,
+  lib,
+  ...
+}:
 
-let 
+let
   cfg = config.services.matrix-synapse;
 in
 {
@@ -24,7 +29,7 @@ in
             path = "/run/matrix-synapse/appservice.sock";
             resources = [
               {
-                names = ["replication"];
+                names = [ "replication" ];
                 compress = false;
               }
             ];
@@ -33,4 +38,4 @@ in
       };
     };
   };
-}
\ No newline at end of file
+}
diff --git a/host/Rory-nginx/services/matrix/synapse/workers/background.nix b/host/Rory-nginx/services/matrix/synapse/workers/background.nix
index d267124..c97d647 100644
--- a/host/Rory-nginx/services/matrix/synapse/workers/background.nix
+++ b/host/Rory-nginx/services/matrix/synapse/workers/background.nix
@@ -1,6 +1,11 @@
-{ config, pkgs, lib, ... }:
+{
+  config,
+  pkgs,
+  lib,
+  ...
+}:
 
-let 
+let
   cfg = config.services.matrix-synapse;
 in
 {
@@ -24,7 +29,7 @@ in
             path = "/run/matrix-synapse/background.sock";
             resources = [
               {
-                names = ["replication"];
+                names = [ "replication" ];
                 compress = false;
               }
             ];
@@ -33,4 +38,4 @@ in
       };
     };
   };
-}
\ No newline at end of file
+}
diff --git a/host/Rory-nginx/services/matrix/synapse/workers/federation-sender.nix b/host/Rory-nginx/services/matrix/synapse/workers/federation-sender.nix
index c90fe3e..d0b1774 100644
--- a/host/Rory-nginx/services/matrix/synapse/workers/federation-sender.nix
+++ b/host/Rory-nginx/services/matrix/synapse/workers/federation-sender.nix
@@ -1,5 +1,10 @@
-{ config, pkgs, lib, ... }:
-let 
+{
+  config,
+  pkgs,
+  lib,
+  ...
+}:
+let
   cfg = config.services.matrix-synapse;
   federationSenders = lib.range 0 (cfg.federationSenders - 1);
 in
@@ -12,23 +17,25 @@ in
       outbound_federation_restricted_to = lib.map (index: "federation_sender-${toString index}") federationSenders;
     };
 
-    workers = lib.listToAttrs (lib.map (index: {
-      name = "federation_sender-${toString index}";
-      value = {
-        worker_app = "synapse.app.generic_worker";
-        worker_listeners = [
-          {
-            type = "http";
-            path = "/run/matrix-synapse/pusher-${toString index}.sock";
-            resources = [
-              {
-                names = ["replication"];
-                compress = false;
-              }
-            ];
-          }
-        ];
-      };
-    }) federationSenders);
+    workers = lib.listToAttrs (
+      lib.map (index: {
+        name = "federation_sender-${toString index}";
+        value = {
+          worker_app = "synapse.app.generic_worker";
+          worker_listeners = [
+            {
+              type = "http";
+              path = "/run/matrix-synapse/pusher-${toString index}.sock";
+              resources = [
+                {
+                  names = [ "replication" ];
+                  compress = false;
+                }
+              ];
+            }
+          ];
+        };
+      }) federationSenders
+    );
   };
-}
\ No newline at end of file
+}
diff --git a/host/Rory-nginx/services/matrix/synapse/workers/module.nix b/host/Rory-nginx/services/matrix/synapse/workers/module.nix
index 9cc3d92..b9c490e 100644
--- a/host/Rory-nginx/services/matrix/synapse/workers/module.nix
+++ b/host/Rory-nginx/services/matrix/synapse/workers/module.nix
@@ -1,14 +1,19 @@
-{ config, pkgs, lib, ... }:
+{
+  config,
+  pkgs,
+  lib,
+  ...
+}:
 let
   cfg = config.services.matrix-synapse;
-  #eventWriters = lib.range 0 (count - 1);
-  #typingWriters = lib.range 0 (count - 1);
-  #deviceWriters = lib.range 0 (count - 1);
-  #accountDataWriters = lib.range 0 (count - 1);
-  #receiptsWriters = lib.range 0 (count - 1);
-  #presenceWriters = lib.range 0 (count - 1);
-  #pusherWriters = lib.range 0 (count - 1);
 in
+#eventWriters = lib.range 0 (count - 1);
+#typingWriters = lib.range 0 (count - 1);
+#deviceWriters = lib.range 0 (count - 1);
+#accountDataWriters = lib.range 0 (count - 1);
+#receiptsWriters = lib.range 0 (count - 1);
+#presenceWriters = lib.range 0 (count - 1);
+#pusherWriters = lib.range 0 (count - 1);
 {
   imports = [
     ./federation-sender.nix
@@ -16,37 +21,43 @@ in
     ./pusher.nix
     ./stream-writers/event-stream-writer.nix
   ];
-  options.services.matrix-synapse = lib.listToAttrs (lib.map (option: {
-        name = "${option}StreamWriters";
-        value = lib.mkOption {
-          type = lib.types.int;
-          default = 0;
-          description = "Number of writers for ${option} streams";
-        };
-      }) [
-        "event"
-        "typing"
-        "toDevice"
-        "accountData"
-        "receipts"
-        "presence"
-        "pushRule"
-      ]) // {
-        enableStreamWriters = lib.mkEnableOption "Enable stream writers";
-        enableAppserviceWorker = lib.mkEnableOption "Enable dedicated appservice worker";
-        enableBackgroundWorker = lib.mkEnableOption "Enable dedicated background task worker";
+  options.services.matrix-synapse =
+    lib.listToAttrs (
+      lib.map
+        (option: {
+          name = "${option}StreamWriters";
+          value = lib.mkOption {
+            type = lib.types.int;
+            default = 0;
+            description = "Number of writers for ${option} streams";
+          };
+        })
+        [
+          "event"
+          "typing"
+          "toDevice"
+          "accountData"
+          "receipts"
+          "presence"
+          "pushRule"
+        ]
+    )
+    // {
+      enableStreamWriters = lib.mkEnableOption "Enable stream writers";
+      enableAppserviceWorker = lib.mkEnableOption "Enable dedicated appservice worker";
+      enableBackgroundWorker = lib.mkEnableOption "Enable dedicated background task worker";
 
-        federationSenders = lib.mkOption {
-          type = lib.types.int;
-          default = 0;
-          description = "Number of federation senders";
-        };
-        pushers = lib.mkOption {
-          type = lib.types.int;
-          default = 0;
-          description = "Number of pushers";
-        };
+      federationSenders = lib.mkOption {
+        type = lib.types.int;
+        default = 0;
+        description = "Number of federation senders";
+      };
+      pushers = lib.mkOption {
+        type = lib.types.int;
+        default = 0;
+        description = "Number of pushers";
       };
+    };
 
   config = lib.mkIf cfg.enableStreamWriters {
     #services.matrix-synapse = {
@@ -57,7 +68,7 @@ in
     #        path = "/run/matrix-synapse/stream-writer-${toString index}.sock";
     #      };
     #    }) federationSenders);
-#
+    #
     #    stream_writers = {
     #      events = lib.map (index: "stream-writer-events-${toString index}") federationSenders;
     #      typing = lib.map (index: "stream-writer-typing-${toString index}") typingWriters;
@@ -68,7 +79,7 @@ in
     #      push_rules = lib.map (index: "stream-writer-push_rules-${toString index}") pusherWriters;
     #    };
     #  };
-#
+    #
     #  workers = lib.listToAttrs (lib.map (index: {
     #    name = "stream-writerr-${toString index}";
     #    value = {
@@ -78,4 +89,4 @@ in
     #  }) federationSenders);
     #};
   };
-}
\ No newline at end of file
+}
diff --git a/host/Rory-nginx/services/matrix/synapse/workers/pusher.nix b/host/Rory-nginx/services/matrix/synapse/workers/pusher.nix
index c90561e..f5ef601 100644
--- a/host/Rory-nginx/services/matrix/synapse/workers/pusher.nix
+++ b/host/Rory-nginx/services/matrix/synapse/workers/pusher.nix
@@ -1,4 +1,9 @@
-{ config, pkgs, lib, ... }:
+{
+  config,
+  pkgs,
+  lib,
+  ...
+}:
 let
   cfg = config.services.matrix-synapse;
   pushers = lib.range 0 (cfg.pushers - 1);
@@ -7,34 +12,38 @@ in
   config = lib.mkIf (cfg.pushers > 0) {
     services.matrix-synapse = {
       settings = {
-        instance_map = lib.listToAttrs (lib.map (index: {
-          name = "pusher-${toString index}";
-          value = {
-            path = "/run/matrix-synapse/pusher-${toString index}.sock";
-          };
-        }) pushers);
+        instance_map = lib.listToAttrs (
+          lib.map (index: {
+            name = "pusher-${toString index}";
+            value = {
+              path = "/run/matrix-synapse/pusher-${toString index}.sock";
+            };
+          }) pushers
+        );
 
         pusher_instances = lib.map (index: "pusher-${toString index}") pushers;
       };
 
-      workers = lib.listToAttrs (lib.map (index: {
-        name = "pusher-${toString index}";
-        value = {
-          worker_app = "synapse.app.generic_worker";
-          worker_listeners = [
-            {
-              type = "http";
-              path = "/run/matrix-synapse/pusher-${toString index}.sock";
-              resources = [
-                {
-                  names = ["replication"];
-                  compress = false;
-                }
-              ];
-            }
-          ];
-        };
-      }) pushers);
+      workers = lib.listToAttrs (
+        lib.map (index: {
+          name = "pusher-${toString index}";
+          value = {
+            worker_app = "synapse.app.generic_worker";
+            worker_listeners = [
+              {
+                type = "http";
+                path = "/run/matrix-synapse/pusher-${toString index}.sock";
+                resources = [
+                  {
+                    names = [ "replication" ];
+                    compress = false;
+                  }
+                ];
+              }
+            ];
+          };
+        }) pushers
+      );
     };
   };
-}
\ No newline at end of file
+}
diff --git a/host/Rory-nginx/services/matrix/synapse/workers/stream-writers/__OLD__module.nix b/host/Rory-nginx/services/matrix/synapse/workers/stream-writers/__OLD__module.nix
index a661911..d4a9ff4 100644
--- a/host/Rory-nginx/services/matrix/synapse/workers/stream-writers/__OLD__module.nix
+++ b/host/Rory-nginx/services/matrix/synapse/workers/stream-writers/__OLD__module.nix
@@ -1,53 +1,66 @@
-{ config, pkgs, lib, ... }:
+{
+  config,
+  pkgs,
+  lib,
+  ...
+}:
 let
   cfg = config.services.matrix-synapse;
-  #eventWriters = lib.range 0 (count - 1);
-  #typingWriters = lib.range 0 (count - 1);
-  #deviceWriters = lib.range 0 (count - 1);
-  #accountDataWriters = lib.range 0 (count - 1);
-  #receiptsWriters = lib.range 0 (count - 1);
-  #presenceWriters = lib.range 0 (count - 1);
-  #pusherWriters = lib.range 0 (count - 1);
 in
+#eventWriters = lib.range 0 (count - 1);
+#typingWriters = lib.range 0 (count - 1);
+#deviceWriters = lib.range 0 (count - 1);
+#accountDataWriters = lib.range 0 (count - 1);
+#receiptsWriters = lib.range 0 (count - 1);
+#presenceWriters = lib.range 0 (count - 1);
+#pusherWriters = lib.range 0 (count - 1);
 {
-  options.services.matrix-synapse = lib.listToAttrs (lib.map (option: {
-        name = "${option}StreamWriters";
-        value = lib.mkOption {
-          type = lib.types.int;
-          default = 1;
-          description = "Number of writers for ${option} streams";
-        };
-      }) [
-        "event"
-        "typing"
-        "toDevice"
-        "accountData"
-        "receipts"
-        "presence"
-        "pushRule"
-      ]) // {
-        enableStreamWriters = lib.mkEnableOption "Enable stream writers";
-        federationSenders = lib.mkOption {
-          type = lib.types.int;
-          default = 1;
-          description = "Number of federation senders";
-        };
-        pushers = lib.mkOption {
-          type = lib.types.int;
-          default = 1;
-          description = "Number of pushers";
-        };
+  options.services.matrix-synapse =
+    lib.listToAttrs (
+      lib.map
+        (option: {
+          name = "${option}StreamWriters";
+          value = lib.mkOption {
+            type = lib.types.int;
+            default = 1;
+            description = "Number of writers for ${option} streams";
+          };
+        })
+        [
+          "event"
+          "typing"
+          "toDevice"
+          "accountData"
+          "receipts"
+          "presence"
+          "pushRule"
+        ]
+    )
+    // {
+      enableStreamWriters = lib.mkEnableOption "Enable stream writers";
+      federationSenders = lib.mkOption {
+        type = lib.types.int;
+        default = 1;
+        description = "Number of federation senders";
+      };
+      pushers = lib.mkOption {
+        type = lib.types.int;
+        default = 1;
+        description = "Number of pushers";
       };
+    };
 
   config = lib.mkIf cfg.enableStreamWriters {
     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";
-          };
-        }) federationSenders);
+        instance_map = lib.listToAttrs (
+          lib.map (port: {
+            name = "stream-writer-${toString port}";
+            value = {
+              path = "/run/matrix-synapse/stream-writer-${toString port}.sock";
+            };
+          }) federationSenders
+        );
 
         stream_writers = {
           events = lib.map (port: "stream-writer-events-${toString port}") federationSenders;
@@ -60,13 +73,15 @@ in
         };
       };
 
-      workers = lib.listToAttrs (lib.map (port: {
-        name = "stream-writerr-${toString port}";
-        value = {
-          worker_app = "synapse.app.generic_worker";
-          worker_listeners = [ ];
-        };
-      }) federationSenders);
+      workers = lib.listToAttrs (
+        lib.map (port: {
+          name = "stream-writerr-${toString port}";
+          value = {
+            worker_app = "synapse.app.generic_worker";
+            worker_listeners = [ ];
+          };
+        }) federationSenders
+      );
     };
   };
-}
\ No newline at end of file
+}
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
index af7e544..42e9251 100644
--- 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
@@ -1,5 +1,9 @@
-
-{ config, pkgs, lib, ... }:
+{
+  config,
+  pkgs,
+  lib,
+  ...
+}:
 let
   cfg = config.services.matrix-synapse;
   streamWriters = lib.range 0 (cfg.eventStreamWriters - 1);
@@ -7,35 +11,39 @@ 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);
+      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);
+    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
+}