Add nixos module
This commit is contained in:
parent
6436cc2e57
commit
3847701785
43
flake.nix
43
flake.nix
|
@ -35,5 +35,46 @@
|
||||||
devShells.default =
|
devShells.default =
|
||||||
pkgs.devshell.mkShell {packages = with pkgs; [go gopls];};
|
pkgs.devshell.mkShell {packages = with pkgs; [go gopls];};
|
||||||
formatter = pkgs.alejandra;
|
formatter = pkgs.alejandra;
|
||||||
});
|
})
|
||||||
|
// {
|
||||||
|
overlays.default = final: prev: {
|
||||||
|
twitter-prometheus = self.packages.${prev.system}.default;
|
||||||
|
};
|
||||||
|
nixosModules.default = {
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.services.twitter-prometheus;
|
||||||
|
in {
|
||||||
|
options.services.twitter-prometheus = {
|
||||||
|
enable = mkEnableOption "Enables the twitter-prometheus service";
|
||||||
|
listenAddr = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
description = "The address to listen on.";
|
||||||
|
default = "localhost";
|
||||||
|
};
|
||||||
|
listenPort = mkOption {
|
||||||
|
type = types.port;
|
||||||
|
description = "The port to listen on.";
|
||||||
|
default = 9700;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
config = mkIf cfg.enable {
|
||||||
|
nixpkgs.overlays = [self.overlays.default];
|
||||||
|
systemd.services.twitter-prometheus = {
|
||||||
|
description = "Twitter prometheus exporter rev ${self.rev}";
|
||||||
|
wantedBy = ["multi-user.target"];
|
||||||
|
serviceConfig = {
|
||||||
|
User = "twitter-prometheus";
|
||||||
|
ExecStart = "${pkgs.twitter-prometheus}/bin/twitter-prometheus -listenAddr ${cfg.listenAddr}:${toString cfg.listenPort}";
|
||||||
|
Restart = "on-failure";
|
||||||
|
DynamicUser = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue