summary refs log tree commit diff
path: root/host/Rory-nginx/services/matrix/synapse/workers/media-repo.nix
diff options
context:
space:
mode:
Diffstat (limited to 'host/Rory-nginx/services/matrix/synapse/workers/media-repo.nix')
-rw-r--r--host/Rory-nginx/services/matrix/synapse/workers/media-repo.nix38
1 files changed, 22 insertions, 16 deletions
diff --git a/host/Rory-nginx/services/matrix/synapse/workers/media-repo.nix b/host/Rory-nginx/services/matrix/synapse/workers/media-repo.nix
index e4d3b32..b030706 100644
--- a/host/Rory-nginx/services/matrix/synapse/workers/media-repo.nix
+++ b/host/Rory-nginx/services/matrix/synapse/workers/media-repo.nix
@@ -1,13 +1,9 @@
-{
-  config,
-  pkgs,
-  lib,
-  ...
-}:
+{ config, lib, ... }:
 
 let
   cfg = config.services.matrix-synapse;
   workers = lib.range 0 (cfg.mediaRepoWorkers - 1);
+  workerName = "media_repo";
   routes = [
     "~ ^/_matrix/media/"
     "~ ^/_matrix/client/v1/media/"
@@ -25,26 +21,26 @@ in
       settings = {
         instance_map = lib.listToAttrs (
           lib.map (index: {
-            name = "media_repo-${toString index}";
+            name = "${workerName}-${toString index}";
             value = {
-              path = "/run/matrix-synapse/media_repo-${toString index}.sock";
+              path = "/run/matrix-synapse/${workerName}-${toString index}.sock";
             };
           }) workers
         );
 
-        media_instance_running_background_jobs = "media_repo-0";
+        media_instance_running_background_jobs = "${workerName}-0";
         enable_media_repo = false;
       };
 
       workers = lib.listToAttrs (
         lib.map (index: {
-          name = "media_repo-${toString index}";
+          name = "${workerName}-${toString index}";
           value = {
             worker_app = "synapse.app.generic_worker";
             worker_listeners = [
               {
                 type = "http";
-                path = "/run/matrix-synapse/media_repo-${toString index}.sock";
+                path = "/run/matrix-synapse/${workerName}-${toString index}.sock";
                 resources = [
                   {
                     names = [ "replication" ];
@@ -54,7 +50,7 @@ in
               }
               {
                 type = "http";
-                path = "/run/matrix-synapse/media_repo-media-${toString index}.sock";
+                path = "/run/matrix-synapse/${workerName}-media-${toString index}.sock";
                 mode = "666";
                 resources = [
                   {
@@ -66,23 +62,33 @@ in
             ];
             database = (
               import ../db.nix {
-                workerName = "media_repo-${toString index}";
+                workerName = "${workerName}-${toString index}";
                 dbGroup = "solo";
               }
             );
             enable_media_repo = true;
+            max_upload_size = "512M";
+            remote_media_download_burst_count = "512G";
+            remote_media_download_per_second = "512G";
+            rc_federation = {
+              window_size = 1;
+              sleep_limit = 1000;
+              sleep_delay = 1;
+              reject_limit = 1000;
+              concurrent = 100;
+            };
           };
         }) workers
       );
     };
 
-    services.nginx.upstreams."media_repo" = {
+    services.nginx.upstreams."${workerName}" = {
       extraConfig = ''
         keepalive 32;
       '';
       servers = lib.listToAttrs (
         lib.map (index: {
-          name = "unix:/run/matrix-synapse/media_repo-media-${toString index}.sock";
+          name = "unix:/run/matrix-synapse/${workerName}-media-${toString index}.sock";
           value = {
             max_fails = 0;
           };
@@ -94,7 +100,7 @@ in
       lib.map (route: {
         name = route;
         value = {
-          proxyPass = "http://media_repo";
+          proxyPass = "http://${workerName}";
           extraConfig = ''
             client_max_body_size 500M;
           '';