summaryrefslogtreecommitdiff
path: root/modules/nixos/alertmanager.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/nixos/alertmanager.nix')
-rw-r--r--modules/nixos/alertmanager.nix88
1 files changed, 0 insertions, 88 deletions
diff --git a/modules/nixos/alertmanager.nix b/modules/nixos/alertmanager.nix
deleted file mode 100644
index a3457bc..0000000
--- a/modules/nixos/alertmanager.nix
+++ /dev/null
@@ -1,88 +0,0 @@
-{
- config,
- inputs,
- lib,
- libNginx,
- ...
-}:
-with lib;
-let
- cfg = config.nixfiles.modules.alertmanager;
-in
-{
- imports = [ inputs.alertmanager-ntfy.nixosModules.default ];
-
- options.nixfiles.modules.alertmanager = {
- enable = mkEnableOption "Alertmanager";
-
- port = mkOption {
- description = "Port.";
- type = with types; port;
- default = 30112;
- };
-
- domain = mkOption {
- description = "Domain name sans protocol scheme.";
- type = with types; nullOr str;
- default = "alertmanager.${config.networking.domain}";
- };
- };
-
- config = mkIf cfg.enable {
- nixfiles.modules = {
- ntfy.enable = true;
- nginx = {
- enable = true;
- upstreams.alertmanager.servers."127.0.0.1:${toString cfg.port}" = { };
- virtualHosts.${cfg.domain} = {
- locations."/".proxyPass = "http://alertmanager";
- extraConfig = libNginx.config.internalOnly;
- };
- };
- };
-
- services = {
- prometheus.alertmanager = {
- enable = true;
-
- listenAddress = "127.0.0.1";
- inherit (cfg) port;
-
- extraFlags = [
- "--cluster.listen-address=\"\""
- "--web.external-url=https://${cfg.domain}"
- ];
-
- configuration = {
- global = {
- smtp_from = "alertmanager@${my.domain.shire}";
- smtp_smarthost = "${my.domain.shire}:584";
- };
-
- route = {
- receiver = my.username;
- group_by = [ "alertname" ];
- };
-
- receivers = [
- {
- name = my.username;
- webhook_configs = [
- { url = with config.services.alertmanager-ntfy; "http://${httpAddress}:${httpPort}"; }
- ];
- }
- ];
- };
- };
- };
-
- services.alertmanager-ntfy = {
- enable = true;
- httpAddress = "127.0.0.1";
- httpPort = toString (config.nixfiles.modules.ntfy.port + 1);
- ntfyTopic = "${config.services.ntfy-sh.settings.base-url}/alertmanager";
- ntfyPriority = "high";
- envFile = "/dev/null";
- };
- };
-}