Debug des webhooks

This commit is contained in:
Your Name 2022-04-02 16:06:41 +00:00
parent 783f11a57a
commit 5f02d633bd
2 changed files with 22 additions and 11 deletions

View file

@ -23,13 +23,8 @@ in
description = "The endpoint of the webhooks"; description = "The endpoint of the webhooks";
}; };
hooks = mkOption { hooks = mkOption {
type = types.listOf (types.submodule { type = json.type;
options = mkOption { description = "Configuration for this webhook, check <link xlink:href="https://github.com/adnanh/webhook/blob/master/docs/Hook-Definition.md"/> for supported values";
type = json.type;
description = "Configuration for this webhook, check <link xlink:href="https://github.com/adnanh/webhook/blob/master/docs/Hook-Definition.md"/> for supported values";
};
});
description = "An list of enabled webhooks";
}; };
internalPort = mkOption { internalPort = mkOption {
type = types.int; type = types.int;
@ -41,18 +36,17 @@ in
services.nginx = { services.nginx = {
enable = true; enable = true;
virtualHosts."${cfg.hostname}" = { virtualHosts."${cfg.hostname}" = {
locations."${endpoint}".proxyPass = "http://127.0.0.1:${cfg.internalPort}/hooks"; locations."${cfg.endPoint}".proxyPass = "http://127.0.0.1:${toString cfg.internalPort}/hooks";
enableACME = if debug then false else true; enableACME = if debug then false else true;
}; };
}; };
systemd.services.webhook = { systemd.services.webhook = {
enable = true;
unitConfig = { unitConfig = {
Description = "Small server for creating HTTP hooks"; Description = "Small server for creating HTTP hooks";
Documentation = "https://github.com/adnanh/webhook/"; Documentation = "https://github.com/adnanh/webhook/";
}; };
serviceConfig = { script = "${cfg.pkg}/bin/webhook -nopanic -ip \"127.0.0.1\" -port \"${toString cfg.internalPort}\" -verbose -hooks ${json.generate "conf.json" cfg.hooks}";
ExecStart = "${cfg.pkg} -ip \"127.0.0.1\" -port \"${cfg.internalPort}\" -verbose -hooks ${json.generate "conf.json" cfg.hooks}";
};
wantedBy = [ "mulit-user.target" ]; wantedBy = [ "mulit-user.target" ];
}; };
}; };

View file

@ -0,0 +1,17 @@
{ config, pkgs, ... }:
{
services.webhook = {
enable = true;
hostname = "test-webhook.${config.my.subZone}";
hooks = [
{
id = "testhook";
execute-command = pkgs.writeScript "echo.sh" ''
#!/bin/sh
echo "Bonjour"
'';
response-message = "Test hook sucess";
}
];
};
}