aboutsummaryrefslogtreecommitdiff
path: root/modules/secfix/default.nix
blob: 0fef70a997aa848adec87ea47b91915b1b68c7f0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
{ config , lib , pkgs , ... }:
let
  secfix-agent = pkgs.stdenv.mkDerivation {
    pname = "secfix-agent";
    version = "1.0.0";

    src = ./secfix.linux-systemd-deb.deb;

    nativeBuildInputs = with pkgs; [ autoPatchelfHook zlib dpkg ];

    sourceRoot = ".";
    unpackCmd = ''dpkg-deb -x "$src" .'';

    dontBuild = true;
    installPhase = ''
      mkdir -p $out/;
      cp -r ./* $out/;
      sed -i \
        -e "s|/var/|$out/var/|" \
        -e "s|/etc/|$out/etc/|" \
        -e "s|/usr/|$out/usr/|" \
        $out/etc/secfix/launcher.flags;
    '';
  };
in

{
  options.services.secfix = {
    enable = lib.mkOption {
      type = lib.types.bool;
      default = false;
      description = ''Secfix agent'';
    };
  };

  config = let
    cfg = config.services.secfix;
  in
    lib.mkIf cfg.enable {
      environment.systemPackages = [ secfix-agent ];

      systemd.services.secfix = {
        unitConfig = {
          Description = "The Kolide Launcher";
          After = "network.service syslog.service";
        };

        serviceConfig = {
          ExecStart =
            "${secfix-agent}/usr/local/secfix/bin/launcher -config ${secfix-agent}/etc/secfix/launcher.flags --root_directory /var/run/secfix/";
          Restart = "on-failure";
          RestartSec = 3;
        };

        wantedBy = ["multi-user.target"];
      };
    };
}