k 3: add htgen
This commit is contained in:
parent
90a3a19104
commit
552a3e8f28
|
@ -20,6 +20,7 @@ let
|
||||||
./github-hosts-sync.nix
|
./github-hosts-sync.nix
|
||||||
./git.nix
|
./git.nix
|
||||||
./go.nix
|
./go.nix
|
||||||
|
./htgen.nix
|
||||||
./iptables.nix
|
./iptables.nix
|
||||||
./kapacitor.nix
|
./kapacitor.nix
|
||||||
./monit.nix
|
./monit.nix
|
||||||
|
|
68
krebs/3modules/htgen.nix
Normal file
68
krebs/3modules/htgen.nix
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
{ config, lib, pkgs, ... }:
|
||||||
|
|
||||||
|
with import <stockholm/lib>;
|
||||||
|
let
|
||||||
|
cfg = config.krebs.htgen;
|
||||||
|
|
||||||
|
out = {
|
||||||
|
options.krebs.htgen = api;
|
||||||
|
config = imp;
|
||||||
|
};
|
||||||
|
|
||||||
|
api = mkOption {
|
||||||
|
type = types.attrsOf (types.submodule ({ config, ... }: {
|
||||||
|
options = {
|
||||||
|
enable = mkEnableOption "krebs.htgen-${config.name}";
|
||||||
|
|
||||||
|
name = mkOption {
|
||||||
|
type = types.username;
|
||||||
|
default = config._module.args.name;
|
||||||
|
};
|
||||||
|
|
||||||
|
port = mkOption {
|
||||||
|
type = types.uint;
|
||||||
|
};
|
||||||
|
|
||||||
|
script = mkOption {
|
||||||
|
type = types.str;
|
||||||
|
};
|
||||||
|
user = mkOption {
|
||||||
|
type = types.user;
|
||||||
|
default = {
|
||||||
|
name = "htgen-${config.name}";
|
||||||
|
home = "/var/lib/htgen-${config.name}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}));
|
||||||
|
};
|
||||||
|
imp = {
|
||||||
|
|
||||||
|
systemd.services = mapAttrs' (name: htgen:
|
||||||
|
nameValuePair "htgen-${name}" {
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
after = [ "network.target" ];
|
||||||
|
environment = {
|
||||||
|
HTGEN_PORT = toString htgen.port;
|
||||||
|
};
|
||||||
|
serviceConfig = {
|
||||||
|
SyslogIdentifier = "htgen";
|
||||||
|
User = htgen.user.name;
|
||||||
|
PrivateTmp = true;
|
||||||
|
Restart = "always";
|
||||||
|
ExecStart = "${pkgs.htgen.override {
|
||||||
|
inherit (htgen) script;
|
||||||
|
}}/bin/htgen --serve";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
) cfg;
|
||||||
|
|
||||||
|
users.users = mapAttrs' (name: htgen:
|
||||||
|
nameValuePair htgen.user.name {
|
||||||
|
inherit (htgen.user) home name uid;
|
||||||
|
createHome = true;
|
||||||
|
}
|
||||||
|
) cfg;
|
||||||
|
|
||||||
|
};
|
||||||
|
in out
|
Loading…
Reference in a new issue