at master 1.0 kB view raw
1{ 2 config, 3 lib, 4 pkgs, 5 ... 6}: 7let 8 cfg = config.services.opentracker; 9in 10{ 11 options.services.opentracker = { 12 enable = lib.mkEnableOption "opentracker"; 13 14 package = lib.mkPackageOption pkgs "opentracker" { }; 15 16 extraOptions = lib.mkOption { 17 type = lib.types.separatedString " "; 18 description = '' 19 Configuration Arguments for opentracker 20 See <https://erdgeist.org/arts/software/opentracker/> for all params 21 ''; 22 default = ""; 23 }; 24 }; 25 26 config = lib.mkIf cfg.enable { 27 28 systemd.services.opentracker = { 29 description = "opentracker server"; 30 after = [ "network.target" ]; 31 wantedBy = [ "multi-user.target" ]; 32 restartIfChanged = true; 33 serviceConfig = { 34 ExecStart = "${cfg.package}/bin/opentracker ${cfg.extraOptions}"; 35 PrivateTmp = true; 36 WorkingDirectory = "/var/empty"; 37 # By default opentracker drops all privileges and runs in chroot after starting up as root. 38 }; 39 }; 40 }; 41}