blob: 8ea056e9f90ca720a1bdfc4f7c8073c6642a7382 [file] [log] [blame]
Piotr Dobrowolskia01905a2021-10-16 18:22:46 +02001{ pkgs, ... }:
2
3let
4 unstable = import (fetchTarball {
5 sha256 = "0ww70kl08rpcsxb9xdx8m48vz41dpss4hh3vvsmswll35l158x0v";
6 url = "https://api.github.com/repos/NixOS/nixpkgs-channels/tarball/84d74ae9c9cbed73274b8e4e00be14688ffc93fe";
7 }) {config = pkgs.config; };
8
9 name = "mikrotik-exporter";
10 user = name;
11 group = name;
12
13 prepare-secrets = pkgs.writeShellScript "${name}-secrets" ''
14 ${pkgs.coreutils}/bin/install --owner=${user} --mode=500 --directory /mnt/secrets/${name}
15 ${pkgs.coreutils}/bin/install --owner=${user} --mode=400 -t /mnt/secrets/${name} \
16 /etc/nixos/secrets/${name}/ap.yml
17 '';
18in {
19 users.users."${user}" = {
20 group = "${group}";
Piotr Dobrowolskib6bc3e62021-10-16 21:56:59 +020021 isSystemUser = true;
22 uid = 1003;
Piotr Dobrowolskia01905a2021-10-16 18:22:46 +020023 };
24 users.groups."${group}" = {};
25
26 systemd.services."${name}" = {
27 description = "Mikrotik prometheus exporter";
28 wantedBy = [ "multi-user.target" ];
29 serviceConfig.Type = "simple";
30 serviceConfig.ExecStartPre = [ "!${prepare-secrets}" ];
31 serviceConfig.ExecStart = "${unstable.prometheus-mikrotik-exporter}/bin/mikrotik-exporter -config-file /mnt/secrets/${name}/ap.yml -port 127.0.0.1:9436";
32 };
33}