{ makeSystem , nixpkgs , listener_resources , name , logConfig , commonConfig }: makeSystem { system = "x86_64-linux"; name = "synapse-worker-${name}"; inherit nixpkgs; config = ({ pkgs, ... }: { dumb-init = { enable = true; type.services = { }; }; environment.systemPackages = [ pkgs.openssh ]; services.synapse.workers.${name} = { package = import ./synapse-package.nix pkgs; settings = { worker_app = "synapse.app.generic_worker"; worker_listeners = [ { port = 6167; tls = false; type = "http"; x_forwarded = true; bind_adrresses = [ "0.0.0.0" ]; resources = [ { names = listener_resources; compress = false; } ]; } { port = 9000; bind_addresses = [ "127.0.0.1" ]; type = "manhole"; } ]; worker_log_config = logConfig pkgs; }; arguments = { config-path = [ (commonConfig pkgs) "/secrets/extra.yaml" "/var/lib/registrations/extra.yaml" ]; keys-directory = [ "/var/lib/synapse/keys" ]; }; }; }); }