Refactor NixOS configuration of Syndicate server
This commit is contained in:
parent
2a44a15be1
commit
abd2ba6f60
|
@ -43,19 +43,22 @@ with lib;
|
|||
|
||||
};
|
||||
|
||||
config = let
|
||||
cfg = config.services.syndicate-server;
|
||||
configDir = "/run/syndicate/config";
|
||||
requireServiceRelayListener = spec:
|
||||
"<require-service <relay-listener ${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 ''<unix "${path}">'')
|
||||
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
|
||||
''<tcp "${address}" ${toString port}>'') 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;
|
||||
};
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue