From 9c7cdcead1d0d2cccb963753be3bd5cfe2939646 Mon Sep 17 00:00:00 2001 From: Daniel Olsen Date: Thu, 2 Feb 2023 21:04:07 +0100 Subject: [PATCH] presence stream writer --- synapse-module/nginx.nix | 9 +++++++++ synapse-module/workers.nix | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/synapse-module/nginx.nix b/synapse-module/nginx.nix index dee922a..ce9ea45 100644 --- a/synapse-module/nginx.nix +++ b/synapse-module/nginx.nix @@ -117,6 +117,7 @@ in synapse_federation_transaction synapse_worker_federation; synapse_client_user-dir synapse_worker_user-dir; + synapse_client_presence synapse_worker_stream-presence; } # from https://github.com/tswfi/synapse/commit/b3704b936663cc692241e978dce4ac623276b1a6 @@ -187,6 +188,14 @@ in ''; }; + services.nginx.upstreams.synapse_worker_stream-presence = { + servers = let + workers = getWorkersOfType "stream-presence"; + socketAddresses = generateSocketAddresses "client" workers; + in if workers != { } then + lib.genAttrs socketAddresses (_: { }) + else config.services.nginx.upstreams.synapse_master.servers; + }; services.nginx.upstreams.synapse_worker_user-dir = { servers = let diff --git a/synapse-module/workers.nix b/synapse-module/workers.nix index 0f17558..428df12 100644 --- a/synapse-module/workers.nix +++ b/synapse-module/workers.nix @@ -226,6 +226,7 @@ in { eventPersisters = mkWorkerCountOption "event-persister"; useUserDirectoryWorker = mkEnableOption "user directory worker"; + usePresenceStreamWriter = mkEnableOption "prescence stream writer"; instances = mkOption { type = types.attrsOf workerInstanceType; @@ -303,6 +304,11 @@ in { numberOfWorkers = 1; nameFn = _: "auto-user-dir"; }; + }) // (lib.optionalAttrs wcfg.usePresenceStreamWriter { + "stream-presence" = { + numberOfWorkers = 1; + nameFn = _: "auto-stream-presence"; + }; }); coerceWorker = { name, value }: if builtins.isInt value then {