nixos-config/hosts/srv-monitor/default.nix

71 lines
1.7 KiB
Nix

{ config, ... }:
{
system.stateVersion = "24.11";
meta = {
domains.validate = true;
ports.validate = true;
};
custom = {
sops = {
enable = true;
agePublicKey = "age1dnru7l0agvnw3t9kmx60u4vh5u4tyd49xdve53zspxkznnp9f34qtec9dl";
};
boot.loader.grub.enable = true;
services = {
resolved.enable = true;
tailscale = {
enable = true;
ssh.enable = true;
};
gatus = {
enable = true;
domain = "status.${config.custom.services.tailscale.domain}";
domainsToMonitor = config.meta.domains.globalList;
customEndpoints = {
"alerts" = {
group = "Monitoring";
url = "https://${config.custom.services.ntfy.domain}/v1/health";
extraConditions = [ "[BODY].healthy == true" ];
};
"git ssh".url = "ssh://git.sstork.dev";
"speedtest".url = "http://speedtest.sprouted.cloud";
};
};
ntfy = {
enable = true;
domain = "alerts.${config.custom.services.tailscale.domain}";
};
grafana = {
enable = true;
domain = "grafana.${config.custom.services.tailscale.domain}";
};
victorialogs = {
enable = true;
domain = "logs.${config.custom.services.tailscale.domain}";
};
caddy.virtualHosts = {
gatus = {
inherit (config.custom.services.gatus) domain port;
};
ntfy = {
inherit (config.custom.services.ntfy) domain port;
};
grafana = {
inherit (config.custom.services.grafana) domain port;
};
victorialogs = {
inherit (config.custom.services.victorialogs) domain port;
};
};
};
};
}