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