Check gatus uptime with healthchecks.io

This commit is contained in:
SebastianStork 2025-06-20 00:35:08 +02:00
parent 4f31384329
commit 38fb2ec1d5
2 changed files with 27 additions and 10 deletions

View file

@ -1,9 +1,6 @@
seb-password: ENC[AES256_GCM,data:laGJomW5c5TB3alpPgZKElQ3Y46OBxPrA0AxVNgx/09oSuG0EM63cnnkwZkrTeZxqjBH2UOryLqCr9DUr9mhZsovqNtZ2t8Uzg==,iv:GpBQNm1jspU8PCN+SzfAUKSps3YySg6JJVYOLOFetOI=,tag:2nARGI9XwzLfJFRhDyGBSw==,type:str] seb-password: ENC[AES256_GCM,data:laGJomW5c5TB3alpPgZKElQ3Y46OBxPrA0AxVNgx/09oSuG0EM63cnnkwZkrTeZxqjBH2UOryLqCr9DUr9mhZsovqNtZ2t8Uzg==,iv:GpBQNm1jspU8PCN+SzfAUKSps3YySg6JJVYOLOFetOI=,tag:2nARGI9XwzLfJFRhDyGBSw==,type:str]
tailscale-auth-key: ENC[AES256_GCM,data:FKHQsrLhELUKUg/nuf/UakS14Qj8z3arRR3366Cc3wag8+lpLrVjKXT8a5ZFd4ZtIghrCSvyXUefAKcVmQ==,iv:jvuoo8DD7ls0WZA6ZrCbz3w4O8NCyXZjv1mscnx/T94=,tag:HczecDubwKkCVu04rqhh9w==,type:str] tailscale-auth-key: ENC[AES256_GCM,data:FKHQsrLhELUKUg/nuf/UakS14Qj8z3arRR3366Cc3wag8+lpLrVjKXT8a5ZFd4ZtIghrCSvyXUefAKcVmQ==,iv:jvuoo8DD7ls0WZA6ZrCbz3w4O8NCyXZjv1mscnx/T94=,tag:HczecDubwKkCVu04rqhh9w==,type:str]
service-tailscale-auth-key: ENC[AES256_GCM,data:S1LXXdGd78y1LAAeBxQ/yC8ggm/Mq8JkXVx7umMEk6nlOx0NLHqklSJ8JX+QUhgmx9hoCBSKJ9q1DxbFzsw=,iv:uDAG/00sl/n+Tp11SmsEQFKWQ9KOxcWfvgnFnIUuMcw=,tag:3A8vv97+HmTzBVxH9hqEfg==,type:str] service-tailscale-auth-key: ENC[AES256_GCM,data:S1LXXdGd78y1LAAeBxQ/yC8ggm/Mq8JkXVx7umMEk6nlOx0NLHqklSJ8JX+QUhgmx9hoCBSKJ9q1DxbFzsw=,iv:uDAG/00sl/n+Tp11SmsEQFKWQ9KOxcWfvgnFnIUuMcw=,tag:3A8vv97+HmTzBVxH9hqEfg==,type:str]
restic:
environment: ENC[AES256_GCM,data:0slVHi88t9iqM8kdp+iWngLO4+fsUztma0wGghFl1gCvgWCrF59N1x2KkrfsMynMOX5EsnokELWJvctpQyeJun/heSwVheH9MlYkx5USKjHIfc82hgcY/9PMpLK8gqCpbEw=,iv:EnNlyIBZgRT7d8o0KTDcPV5uNSfDwbmss3M5rxMwAns=,tag:wcMnfb8FqlInvHj4NI7V4g==,type:str]
password: ENC[AES256_GCM,data:/VY9RlJ6MTHhAPQ7BODp0M3rgoNFUIDDFkg++PoL,iv:LxubXHR6F1X6vkdbLmbNt/o1hYAULhSXQw8587jQkls=,tag:E67MoC5ViZyKaSPP4Mg3Kw==,type:str]
healthchecks-ping-key: ENC[AES256_GCM,data:j2AJZ0VvRxJMsy1VSA/7mOmCBka2KA==,iv:5LjD9u08wdU3W+RlL8UK5AaU9GSy+6FqTUTkIJkea2c=,tag:wKOjFncxgURIlQSCBLXLSw==,type:str] healthchecks-ping-key: ENC[AES256_GCM,data:j2AJZ0VvRxJMsy1VSA/7mOmCBka2KA==,iv:5LjD9u08wdU3W+RlL8UK5AaU9GSy+6FqTUTkIJkea2c=,tag:wKOjFncxgURIlQSCBLXLSw==,type:str]
sops: sops:
age: age:
@ -25,7 +22,7 @@ sops:
V1F2cjlmRWNKWkN1U3hwNWl6U2lEb1kKgsj22mpgxpgA5oXTXhoA5DtkySqqcn17 V1F2cjlmRWNKWkN1U3hwNWl6U2lEb1kKgsj22mpgxpgA5oXTXhoA5DtkySqqcn17
OrpUiZmfOABXEZ0b5pnkAD06aW+7j2SqajYpvguxIrD9x1w562FmZA== OrpUiZmfOABXEZ0b5pnkAD06aW+7j2SqajYpvguxIrD9x1w562FmZA==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2025-06-09T21:39:42Z" lastmodified: "2025-06-19T22:27:27Z"
mac: ENC[AES256_GCM,data:25WhVN2xQjwzG+ntaTXStMDFZOc57PTaHyb1aWRZpQt5hKR9Ot+nhyx0PrzckgOCfBXBBlzetRBGj0akLhVEMKNXtsLzI6BIttqgH1RniZqM35wEOp63ZNYwpXCB23tYyNkoiDheb/yWDVuWMlJxj5vgYv1BFhPo2MbHGGcLDHU=,iv:2hWf8B6C0SdHiG2T1906zChuElhB/Ae0MPzr3mz1zD0=,tag:UELD567RvAcz02Fgcg74Hg==,type:str] mac: ENC[AES256_GCM,data:HPVe70zuMv3AKwxJdBeY4LXlg+Yod6HeJmfPV/h9+ykA3z9jW4JniHzdtkTa9ZE//92zdkJgaQyJK560h+tCEoZSmLplS5Wig2t9oKI+NBl4z1me4waKXSgAmhlc4J2/j+QZcUcUHRkMrUFu69ioOHE2V41WQnQ7w6sCIm6ZSx8=,iv:TNFL5PlOpN824zPX9yOmM3cpYm6vKmlHX1IvuKTvtB8=,tag:QFxiRi36TAg//xkLTaWz9A==,type:str]
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.10.2 version: 3.10.2

View file

@ -51,8 +51,16 @@ in
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
meta.ports.list = [ cfg.port ]; meta.ports.list = [ cfg.port ];
sops = {
secrets."healthchecks-ping-key" = { };
templates."gatus.env".content = ''
HEALTHCHECKS_PING_KEY=${config.sops.placeholder."healthchecks-ping-key"}
'';
};
services.gatus = { services.gatus = {
enable = true; enable = true;
environmentFile = config.sops.templates."gatus.env".path;
settings = { settings = {
web.port = cfg.port; web.port = cfg.port;
@ -110,11 +118,23 @@ in
} }
); );
in in
self.nixosConfigurations [
|> lib.mapAttrsToList (_: value: value.config.custom.services.gatus.endpoints) {
|> lib.map (entry: lib.mapAttrsToList (_: value: value) entry) name = "Healthchecks.io";
|> lib.concatLists group = "Monitoring";
|> lib.map (entry: mkEndpoint entry); url = "https://hc-ping.com/\${HEALTHCHECKS_PING_KEY}/gatus-uptime?create=1";
interval = "2h";
alerts = [ { type = "ntfy"; } ];
conditions = [ "[STATUS] == 200" ];
}
]
++ (
self.nixosConfigurations
|> lib.mapAttrsToList (_: value: value.config.custom.services.gatus.endpoints)
|> lib.map (entry: lib.mapAttrsToList (_: value: value) entry)
|> lib.concatLists
|> lib.map (entry: mkEndpoint entry)
);
}; };
}; };
}; };