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 | |
| parent | 050bba5eb5506e4fd99177820a374645416f06bf (diff) | |
| download | x-a3ff70a8aa64981f9441ad6faa52d1bf0bb7d337.tar.xz x-a3ff70a8aa64981f9441ad6faa52d1bf0bb7d337.zip | |
nix: add sanguisuga module
Signed-off-by: Xe Iaso <me@xeiaso.net>
| -rw-r--r-- | flake.nix | 3 | ||||
| -rw-r--r-- | nix/sanguisuga.nix | 47 |
2 files changed, 50 insertions, 0 deletions
@@ -234,6 +234,7 @@ mainsanow = copyFile { pname = "mainsanow"; }; prefix = copyFile { pname = "prefix"; }; quickserv = copyFile { pname = "quickserv"; }; + sanguisuga = copyFile { pname = "sanguisuga"; }; todayinmarch2020 = copyFile { pname = "todayinmarch2020"; }; uploud = copyFile { pname = "uploud"; }; vest-pit-near = copyFile { pname = "vest-pit-near"; }; @@ -344,6 +345,7 @@ aegis hlang todayinmarch2020 + sanguisuga vest-pit-near within-website ]; @@ -352,6 +354,7 @@ aegis = import ./nix/aegis.nix self; hlang = import ./nix/hlang.nix self; todayinmarch2020 = import ./nix/todayinmarch2020.nix self; + sanguisuga = import ./nix/sanguisuga.nix self; vest-pit-near = import ./nix/vest-pit-near.nix self; within-website = import ./nix/within-website.nix self; }; 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"; + }; + }; + }; +} |
