Add nixos module
This commit is contained in:
parent
6436cc2e57
commit
c723653b20
43
flake.nix
43
flake.nix
|
@ -35,5 +35,46 @@
|
|||
devShells.default =
|
||||
pkgs.devshell.mkShell {packages = with pkgs; [go gopls];};
|
||||
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 = self.description;
|
||||
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