diff --git a/nixos/syndicate-server.nix b/nixos/syndicate-server.nix index 83697b2..c417715 100644 --- a/nixos/syndicate-server.nix +++ b/nixos/syndicate-server.nix @@ -43,19 +43,22 @@ with lib; }; - config = let - cfg = config.services.syndicate-server; - configDir = "/run/syndicate/config"; - requireServiceRelayListener = spec: - ">"; + config = let cfg = config.services.syndicate-server; in mkIf cfg.enable { + assertions = [{ + assertion = cfg.tcpListeners == [ ]; + message = + "tcpListeners configuration not implemented for Syndicate server"; + }]; + systemd.services.syndicate-server = { description = "Syndicate dataspace server"; wantedBy = [ "multi-user.target" ]; serviceConfig = { - ExecStartPre = "${pkgs.coreutils}/bin/mkdir -p ${configDir}"; - ExecStart = "${cfg.package}/bin/syndicate-server --config ${configDir}"; + ExecStart = "${cfg.package}/bin/syndicate-server ${ + lib.strings.concatMapStrings (l: " --socket ${l}") cfg.unixListeners + }"; Group = cfg.group; AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ]; DynamicUser = true; @@ -64,39 +67,5 @@ with lib; }; }; - systemd.services.syndicate-server-unix-listeners = { - description = "Configure Syndicate unix listeners"; - after = [ "syndicate-server.service" ]; - wantedBy = [ "multi-user.target" ]; - serviceConfig = { - ExecStart = let - prsFile = builtins.toFile "unix-listeners.pr" - (lib.strings.concatMapStrings - (path: requireServiceRelayListener '''') - cfg.unixListeners); - in "${pkgs.coreutils}/bin/cp ${prsFile} ${configDir}/nixos-unix-listeners.pr"; - ExecStop = - "${pkgs.coreutils}/bin/rm ${configDir}/nixos-unix-listeners.pr"; - RemainAfterExit = true; - }; - }; - - systemd.services.syndicate-server-tcp-listeners = { - description = "Configure Syndicate TCP listeners"; - after = [ "syndicate-server.service" "network.target" ]; - wantedBy = [ "multi-user.target" ]; - serviceConfig = { - ExecStart = let - prsFile = builtins.toFile "tcp-listeners.pr" - (lib.strings.concatMapStrings ({ address, port }: - requireServiceRelayListener - '''') cfg.tcpListeners); - in "${pkgs.coreutils}/bin/cp ${prsFile} ${configDir}/nixos-tcp-listeners.pr"; - ExecStop = - "${pkgs.coreutils}/bin/rm ${configDir}/nixos-tcp-listeners.pr"; - RemainAfterExit = true; - }; - }; - }; }