blob: ad182008ed710663b6ca36f0cb114a6e70314ecf [file] [log] [blame]
Piotr Dobrowolskia01905a2021-10-16 18:22:46 +02001{ pkgs, ... }:
2
3let
Piotr Dobrowolskia01905a2021-10-16 18:22:46 +02004 name = "mikrotik-exporter";
5 user = name;
6 group = name;
7
8 prepare-secrets = pkgs.writeShellScript "${name}-secrets" ''
9 ${pkgs.coreutils}/bin/install --owner=${user} --mode=500 --directory /mnt/secrets/${name}
10 ${pkgs.coreutils}/bin/install --owner=${user} --mode=400 -t /mnt/secrets/${name} \
11 /etc/nixos/secrets/${name}/ap.yml
12 '';
13in {
14 users.users."${user}" = {
15 group = "${group}";
Piotr Dobrowolskib6bc3e62021-10-16 21:56:59 +020016 isSystemUser = true;
17 uid = 1003;
Piotr Dobrowolskia01905a2021-10-16 18:22:46 +020018 };
19 users.groups."${group}" = {};
20
21 systemd.services."${name}" = {
22 description = "Mikrotik prometheus exporter";
23 wantedBy = [ "multi-user.target" ];
24 serviceConfig.Type = "simple";
25 serviceConfig.ExecStartPre = [ "!${prepare-secrets}" ];
Piotr Dobrowolski6f6187c2021-10-16 23:22:22 +020026 serviceConfig.ExecStart = "${pkgs.prometheus-mikrotik-exporter}/bin/mikrotik-exporter -config-file /mnt/secrets/${name}/ap.yml -port 127.0.0.1:9436";
Piotr Dobrowolskia01905a2021-10-16 18:22:46 +020027 };
28}