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}