{ pkgs, lib, fleetFlake, config, ... }: { users.users.garmin-collector = { isSystemUser = true; group = "garmin-collector"; extraGroups = ["garmin-collector"]; home = "/var/lib/garmin-collector"; }; users.groups.garmin-collector = {}; systemd.services.garmin-collector = { description = "Garmin collector pushing to Prometheus Pushgateway"; wantedBy = ["multi-user.target"]; environment = { PUSHGATEWAY_ADDRESS = config.services.prometheus.pushgateway.web.listen-address; }; serviceConfig = { Group = "garmin-collector"; User = "garmin-collector"; WorkingDirectory = "/var/lib/garmin-collector"; ExecStart = '' ${lib.getExe fleetFlake.packages.${pkgs.system}.garmin-collector} ''; EnvironmentFile = config.age.secrets.garmin-collector-environment.path; }; }; systemd.timers."garmin-collector" = { wantedBy = ["timers.target"]; timerConfig = { OnBootSec = "5m"; OnUnitActiveSec = "4h"; Unit = "garmin-collector.service"; }; }; environment.persistence."/persist".directories = [ "/var/lib/garmin-collector" ]; }