aboutsummaryrefslogtreecommitdiff
path: root/nix
diff options
context:
space:
mode:
authorXe Iaso <me@xeiaso.net>2023-08-07 13:05:59 -0400
committerXe Iaso <me@xeiaso.net>2023-08-07 13:05:59 -0400
commita3ff70a8aa64981f9441ad6faa52d1bf0bb7d337 (patch)
tree75ce745aeb417b368ae44ca48ce63f1b9f53a7a8 /nix
parent050bba5eb5506e4fd99177820a374645416f06bf (diff)
downloadx-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.nix47
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";
+ };
+ };
+ };
+}