diff options
| author | Xe Iaso <me@xeiaso.net> | 2023-08-07 13:05:59 -0400 |
|---|---|---|
| committer | Xe Iaso <me@xeiaso.net> | 2023-08-07 13:05:59 -0400 |
| commit | a3ff70a8aa64981f9441ad6faa52d1bf0bb7d337 (patch) | |
| tree | 75ce745aeb417b368ae44ca48ce63f1b9f53a7a8 /nix | |
| parent | 050bba5eb5506e4fd99177820a374645416f06bf (diff) | |
| download | x-a3ff70a8aa64981f9441ad6faa52d1bf0bb7d337.tar.xz x-a3ff70a8aa64981f9441ad6faa52d1bf0bb7d337.zip | |
nix: add sanguisuga module
Signed-off-by: Xe Iaso <me@xeiaso.net>
Diffstat (limited to 'nix')
| -rw-r--r-- | nix/sanguisuga.nix | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/nix/sanguisuga.nix b/nix/sanguisuga.nix new file mode 100644 index 0000000..2006586 --- /dev/null +++ b/nix/sanguisuga.nix @@ -0,0 +1,47 @@ +self: +{ config, lib, pkgs, ... }: +with lib; +let + system = pkgs.system; + cfg = config.xeserv.services.sanguisuga; + selfpkgs = self.packages.${system}; +in { + options.xeserv.services.sanguisuga = { + enable = mkEnableOption "Enables the sanguisuga torrent leeching agent"; + + package = mkOption { + type = types.package; + default = selfpkgs.sanguisuga; + description = "the package containing the sanguisuga binary"; + }; + }; + config = mkIf cfg.enable { + users.users.sanguisuga = { + isSystemUser = true; + group = "sanguisuga"; + extraGroups = ["within"]; + createHome = true; + }; + users.groups.sanguisuga = {}; + systemd.services.sanguisuga = { + wantedBy = [ "multi-user.target" ]; + environment = { + HOME = "/var/lib/sanguisuga"; + STATE_DIR = "/var/lib/sanguisuga"; + }; + path = with pkgs; [ docker ]; + serviceConfig = { + User = "sanguisuga"; + Group = "sanguisuga"; + Restart = "always"; + RestartSec = "30s"; + ExecStart = "${cfg.package}/bin/sanguisuga"; + RuntimeDirectory = "sanguisuga"; + RuntimeDirectoryMode = "0755"; + CacheDirectory = "sanguisuga"; + CacheDirectoryMode = "0750"; + WorkingDirectory = "/var/lib/sanguisuga"; + }; + }; + }; +} |
