diff --git a/flake.lock b/flake.lock index 065ee72..865332a 100644 --- a/flake.lock +++ b/flake.lock @@ -128,11 +128,11 @@ }, "nixpkgs-unstable": { "locked": { - "lastModified": 1751011381, - "narHash": "sha256-krGXKxvkBhnrSC/kGBmg5MyupUUT5R6IBCLEzx9jhMM=", + "lastModified": 1754214453, + "narHash": "sha256-Q/I2xJn/j1wpkGhWkQnm20nShYnG7TI99foDBpXm1SY=", "owner": "nixos", "repo": "nixpkgs", - "rev": "30e2e2857ba47844aa71991daa6ed1fc678bcbb7", + "rev": "5b09dc45f24cf32316283e62aec81ffee3c3e376", "type": "github" }, "original": { diff --git a/secrets.yaml b/secrets.yaml index f076a1f..691cf8e 100644 --- a/secrets.yaml +++ b/secrets.yaml @@ -4,7 +4,7 @@ dotspace: MyBook: ENC[AES256_GCM,data:6aESJ331WjclGzzDYjqIReEhZmOYcEVdm0pK5DROm0aOycdd5N/my3FNmnw85T/3SeLneOsfXxM=,iv:PX0zuGXq3Atmuk4+78iJkiifnKYOW5dYUmsHjhlD/mw=,tag:lzEz7DaxGzsFD2gtoM3vOw==,type:str] Archive: ENC[AES256_GCM,data:vz7o/qRVbIW97FJG0MeljUf3Wc8zhdl6ijgghOfyIikRCKzfuHBAmKhMBKtuIt0uliCJhcCJwbw=,iv:5nZ9R6Mx890n95uMCbiX5mwoJPJOZ/dm/MpsFDrHcQI=,tag:Bk56jnyJJDpz6fm3EfXWGg==,type:str] Frigate: ENC[AES256_GCM,data:rzcjpec10FgCx0IoURkDEPPd4l00SP75kn4X6VEFAv0w1VQ10h6Ww7msyhgttPe1+P5cYJyuzCw=,iv:WSvIezNccUoSc2z3wyCAGrK/u7iwJl4PBg9xM5RjpyE=,tag:u0sSKnQ3fGnudo1KRobOPQ==,type:str] - gatus.env: ENC[AES256_GCM,data:y3ZvQyESRZwcVWD1DtVFb9x6DcobOYfIW1t4nuRtsDGqgVAwNq9G9eFF5QzSw7REWCxR/4L8zvAr4Yz3pE09oOHdtVzj3+AvDDWv+b49+3Cm0/sdA0b8e/LWE6vSexdT+Fo6zdYNU6iy9J6wbBBDGaeb3WHfz++VLimKqQgTpjTAHyW2827KoD929IpmIe67fEfX9MaqOj+OgWcxx1wgoY2qCVtddLMcHel7BkYkLsZnWjqE1jTt796bfVwuKZAfAQ==,iv:4IJ0f+AQTBYqNSUbnryFvgGN5njZ91GKce+VmmA5I90=,tag:GpJuuicuro0XfzMIuV3q0g==,type:str] + gatus.env: ENC[AES256_GCM,data:WB0d832S4yVH/h8AAnbc0a+Ysh8kBWFbqcFbWeGmkKGp9UjqXOcqXiSpvHA4c718Upxj/SllMBfGD3XnQEnSc6+CEaISojtyJ4Qa7CmU03sk8BOg1W/XTMUKRYGQZ6t0bN0I2LICwxyI2hxVQpRAPmVHTYn1F8BWoE0qijVYjTfkt0LWR9w1NF/STQyr5KwNp+ASxxmko5xFHbp/yvbEo94WM9nFGuKLBmFuI9QTZ07gJjRiexnANilGqQsVezq5Fr8IUebDs5lWxuAlFeBemaWNGa1QAqK5fONr9dNMcPW0izg8cGSdAb6Flfz8qCfRiaJO6O8cMFjKv8NTBh2Ml3KItc5hH4gpHh+lQvWk/3qdisniz1m5nSVwTi8l0Dwcp08=,iv:Jy2whZcn/yfA1+d2K3QAEBGYK9IA6zfGIYWdw8d7CaY=,tag:wBqTyqLVE2hv9EF9sxxFaw==,type:str] coturn: static_auth_secret: ENC[AES256_GCM,data:bzKR57iArTKSSNYmXE/SkD4v8EwLsKnBuiZ8JMZ1bgcZr9E8p+PguYlxSon0hYUjh9smaAOYvfaMzv/s12ri4A==,iv:q+u28mPxslUKFmYZYR2Lp+s+1DSlLzxQvRq2M80+aEI=,tag:vdQtLQBhno2v1OA2RfA8xA==,type:str] cert.pem: ENC[AES256_GCM,data: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,iv:ZEI+L7M8ambKmkQ6en/rbxWhi0hotKNW8MkXTDBLWnU=,tag:od3eTxYLQrr6AgQfFU8OHQ==,type:str] @@ -60,8 +60,8 @@ sops: REwzTS84OFdmNGprZzNLZnNVaWp1Y2cKHLAwPJ9+vb4ux4XPzNXs9O3oLfTy8744 fkhkVr+2pEn4YN3tz70MVtYhRYPSZn2t26GeQxznODFFoN6tch5E6A== -----END AGE ENCRYPTED FILE----- - lastmodified: "2025-08-03T21:28:36Z" - mac: ENC[AES256_GCM,data:iItTJBTH297fRpH+lQGBaIdzQN78wKiT9URxDZR4qAk9N8cGx5npTlxVDnwNSsuiWDMMk1fYqheXj0Q9tMf3xJs4S7uJTXaQ2/5liPXYH3gD/bT0/ZfLfGdGtapLlAxU+B3Sch0XCc/Etm2xW7muF4ENAzl5Ggq3o6AU52Vm0yc=,iv:QYlDsu2m6IJMyRJtatNtuHEsCYnoJGKrjiqkg4uemDI=,tag:PT1JgOV7BX14fkl7EjuV7Q==,type:str] + lastmodified: "2025-08-05T02:33:53Z" + mac: ENC[AES256_GCM,data:airog9x7QeX3RYNVnx4UvMas+NiYGi5VCH0eb2jEC05mblfMuItylQNkTS2XNpIcGOwk7yL741W4ZExUzfwqBmPp2sIJKvxUzcu53KiOAy2NAbjC2v3aRpQOKcY7NjKgTCABXDWW0eJJvkH0o56dZrbzya7SBaHUQ+jMMSYPvhs=,iv:3jLvWSCZOvn8NGs8oTJ6sEWtzf1nNzF4nb+c9XX6RX8=,tag:em6Nwojqc99vRbyNJA/ypQ==,type:str] pgp: - created_at: "2025-08-03T05:29:55Z" enc: |- diff --git a/systems/fortress/gatus.nix b/systems/fortress/gatus.nix index 3c1005c..c24afb8 100644 --- a/systems/fortress/gatus.nix +++ b/systems/fortress/gatus.nix @@ -1,20 +1,41 @@ -{ ... }: { +{ ... } @ args: { sops.secrets."dotspace/gatus.env".mode = "0664"; + # TODO: https://github.com/NixOS/nixpkgs/issues/415877 + disabledModules = [ "services/monitoring/gatus.nix" ]; + imports = [ "${args.inputs.nixpkgs-unstable}/nixos/modules/services/monitoring/gatus.nix" ]; + services.gatus = { enable = true; environmentFile = "/run/secrets/dotspace/gatus.env"; settings = { web.port = 18255; - alerting.discord.webhook-url = "\${GATUS_DISCORD_WEBHOOK}"; - - maintenance = { - start = "04:50"; - duration = "30m"; - timezone = "America/Chicago"; + alerting = { + discord = { + webhook-url = "\${GATUS_DISCORD_WEBHOOK}"; + default-alert = { + send-on-resolved = true; + description = "\${LAUREN_DISCORD_USERNAME}"; + }; + }; + matrix = { + server-url = "https://matrix.mlaga97.space"; + access-token = "\${GATUS_MATRIX_TOKEN}"; + internal-room-id = "!hMdNLWZttBQomJhQOC:matrix.mlaga97.space"; + default-alert = { + send-on-resolved = true; + description = "@mlaga97:matrix.mlaga97.space"; + }; + }; }; + #maintenance = { + # start = "04:50"; + # duration = "30m"; + # timezone = "America/Chicago"; + #}; + endpoints = [ { name = "Synapse"; @@ -22,15 +43,12 @@ url = "https://matrix.mlaga97.space/_synapse/admin/v1/server_version"; interval = "30s"; conditions = [ + "[CONNECTED] == true" "[STATUS] == 200" "has([BODY].server_version) == true" "[CERTIFICATE_EXPIRATION] > 48h" ]; - alerts = [{ - type = "discord"; - send-on-resolved = true; - description = "\${LAUREN_DISCORD_USERNAME}"; - }]; + alerts = [{ type = "discord"; }]; } { name = "Home Assistant"; @@ -38,14 +56,11 @@ url = "https://homeassistant.mlaga97.space/api/webhook/-k9lg4u3J3_QLO6avhXNG4KZa"; interval = "30s"; conditions = [ + "[CONNECTED] == true" "[STATUS] == 200" "[CERTIFICATE_EXPIRATION] > 48h" ]; - alerts = [{ - type = "discord"; - send-on-resolved = true; - description = "\${LAUREN_DISCORD_USERNAME}"; - }]; + alerts = [{ type = "matrix"; }]; } { name = "Git"; @@ -53,15 +68,28 @@ url = "https://git.mlaga97.space/api/healthz"; interval = "30s"; conditions = [ + "[CONNECTED] == true" "[STATUS] == 200" "[BODY].status == pass" "[CERTIFICATE_EXPIRATION] > 48h" ]; - alerts = [{ - type = "discord"; - send-on-resolved = true; - description = "\${LAUREN_DISCORD_USERNAME}"; - }]; + alerts = [{ type = "matrix"; }]; + } + { + name = "bastion.tinc.mlaga97.space"; + group = "Hosts"; + url = "icmp://10.86.84.105"; + interval = "30s"; + conditions = [ "[CONNECTED] == true" ]; + alerts = [{ type = "matrix"; }]; + } + { + name = "blockhouse.tinc.mlaga97.space"; + group = "Hosts"; + url = "icmp://10.86.84.104"; + interval = "30s"; + conditions = [ "[CONNECTED] == true" ]; + alerts = [{ type = "matrix"; }]; } ]; };