✨ (cesium/services) create status pages with gatus
This commit is contained in:
parent
b6af810f5d
commit
072f957773
44
flake.lock
44
flake.lock
|
@ -193,11 +193,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1705075138,
|
"lastModified": 1705231690,
|
||||||
"narHash": "sha256-0slYsXoR1Sd5FwTfFZLYxAsI015+J4lvgvo55u4Gw1A=",
|
"narHash": "sha256-PYIdQ6eb1Zs0sKM0g3y0/OHqfsMn8tjNypGjvH8WmfI=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "disko",
|
"repo": "disko",
|
||||||
"rev": "f78b6498f69e04514cb84393e5daba669198c1c1",
|
"rev": "036d480ae895afff54da5034331950827a7f317a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -348,11 +348,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1705104164,
|
"lastModified": 1705169127,
|
||||||
"narHash": "sha256-pllCu3Hcm1wP/B0SUxgUXvHeEd4w8s2aVrEQRdIL1yo=",
|
"narHash": "sha256-j9OEtNxOIPWZWjbECVMkI1TO17SzlpHMm0LnVWKOR/g=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "0912d26b30332ae6a90e1b321ff88e80492127dd",
|
"rev": "f2942f3385f1b35cc8a1abb03a45e29c9cb4d3c8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -370,11 +370,11 @@
|
||||||
"xdph": "xdph"
|
"xdph": "xdph"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1705070596,
|
"lastModified": 1705253252,
|
||||||
"narHash": "sha256-Xq3JOddIH7AnACEHGaSKg71IF8CATE1zSTzdgR4pnlo=",
|
"narHash": "sha256-u3gEnjPq5zJR+/bJXHFw1gH7MB3ovj5bHFe3f7Pb2eo=",
|
||||||
"owner": "hyprwm",
|
"owner": "hyprwm",
|
||||||
"repo": "Hyprland",
|
"repo": "Hyprland",
|
||||||
"rev": "c4da4b026deefd58f532353b64e9f17130e760ca",
|
"rev": "b6516bad0281efb55195e8db180aa2dcaf8b98e4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -494,11 +494,11 @@
|
||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1704786394,
|
"lastModified": 1705187059,
|
||||||
"narHash": "sha256-aJM0ln9fMGWw1+tjyl5JZWZ3ahxAA2gw2ZpZY/hkEMs=",
|
"narHash": "sha256-dSj+iIYqLA+7/5rLXWfUxw9IXRm0w8Mrm39af8klUH0=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "b34a6075e9e298c4124e35c3ccaf2210c1f3a43b",
|
"rev": "ef811636cc847355688804593282078bac7758d4",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -614,18 +614,18 @@
|
||||||
},
|
},
|
||||||
"nixpkgs_4": {
|
"nixpkgs_4": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1704722960,
|
"dirtyRev": "9b19f5e77dd906cb52dade0b7bd280339d2a1f3d-dirty",
|
||||||
"narHash": "sha256-mKGJ3sPsT6//s+Knglai5YflJUF2DGj7Ai6Ynopz0kI=",
|
"dirtyShortRev": "9b19f5e77dd9-dirty",
|
||||||
"owner": "NixOS",
|
"lastModified": 1705133751,
|
||||||
"repo": "nixpkgs",
|
"narHash": "sha256-N2uMQQ9DEjVcUbYx+vMlvJcgPGMZN1DAl8yeyVJpf7I=",
|
||||||
"rev": "317484b1ead87b9c1b8ac5261a8d2dd748a0492d",
|
"shallow": true,
|
||||||
"type": "github"
|
"type": "git",
|
||||||
|
"url": "file:///home/laurent/Documents/github.com/NixOS/nixpkgs"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"shallow": true,
|
||||||
"ref": "nixos-unstable",
|
"type": "git",
|
||||||
"repo": "nixpkgs",
|
"url": "file:///home/laurent/Documents/github.com/NixOS/nixpkgs"
|
||||||
"type": "github"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pre-commit-hooks-nix": {
|
"pre-commit-hooks-nix": {
|
||||||
|
|
|
@ -7,8 +7,8 @@
|
||||||
inputs = {
|
inputs = {
|
||||||
# core stuff
|
# core stuff
|
||||||
nixpkgs = {
|
nixpkgs = {
|
||||||
url = "github:NixOS/nixpkgs/nixos-unstable";
|
# url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
# url = "git+file:///home/laurent/Documents/nixpkgs?shallow=1";
|
url = "git+file:///home/laurent/Documents/github.com/NixOS/nixpkgs?shallow=1";
|
||||||
};
|
};
|
||||||
home-manager = {
|
home-manager = {
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
imports = [
|
imports = [
|
||||||
./acme
|
./acme
|
||||||
./atuin
|
./atuin
|
||||||
|
./gatus
|
||||||
./gitea
|
./gitea
|
||||||
./nginx
|
./nginx
|
||||||
./ssh
|
./ssh
|
||||||
|
|
176
hosts/cesium/services/gatus/config.yml
Normal file
176
hosts/cesium/services/gatus/config.yml
Normal file
|
@ -0,0 +1,176 @@
|
||||||
|
web:
|
||||||
|
port: 2020
|
||||||
|
|
||||||
|
endpoints:
|
||||||
|
- name: fainsin.bzh
|
||||||
|
url: "https://fainsin.bzh"
|
||||||
|
interval: 6h
|
||||||
|
conditions:
|
||||||
|
- "[DOMAIN_EXPIRATION] > 720h"
|
||||||
|
|
||||||
|
- name: laurent.fainsin.bzh
|
||||||
|
group: web
|
||||||
|
url: "https://laurent.fainsin.bzh"
|
||||||
|
interval: 5m
|
||||||
|
conditions:
|
||||||
|
- "[STATUS] == 200"
|
||||||
|
- "[RESPONSE_TIME] < 300"
|
||||||
|
- "[BODY] == pat(*<title>Laurent Fainsin</title>*)"
|
||||||
|
- "[CERTIFICATE_EXPIRATION] > 240h"
|
||||||
|
|
||||||
|
- name: resume.laurent.fainsin.bzh
|
||||||
|
group: web
|
||||||
|
url: "https://resume.laurent.fainsin.bzh"
|
||||||
|
interval: 5m
|
||||||
|
conditions:
|
||||||
|
- "[STATUS] == 200"
|
||||||
|
- "[RESPONSE_TIME] < 300"
|
||||||
|
- "[CERTIFICATE_EXPIRATION] > 240h"
|
||||||
|
|
||||||
|
- name: git.fainsin.bzh
|
||||||
|
group: services
|
||||||
|
url: "https://git.fainsin.bzh"
|
||||||
|
interval: 5m
|
||||||
|
conditions:
|
||||||
|
- "[STATUS] == 200"
|
||||||
|
- "[RESPONSE_TIME] < 300"
|
||||||
|
- "[CERTIFICATE_EXPIRATION] > 240h"
|
||||||
|
- "[BODY] == pat(*<title>Explore - gitea: Gitea Service</title>*)"
|
||||||
|
|
||||||
|
- name: atuin.fainsin.bzh
|
||||||
|
group: services
|
||||||
|
url: "https://atuin.fainsin.bzh"
|
||||||
|
interval: 15m
|
||||||
|
conditions:
|
||||||
|
- "[STATUS] == 200"
|
||||||
|
- "[RESPONSE_TIME] < 300"
|
||||||
|
- "[CERTIFICATE_EXPIRATION] > 240h"
|
||||||
|
- "[BODY].homage == pat(*Sir Terry Pratchett*)"
|
||||||
|
|
||||||
|
- name: status.fainsin.bzh
|
||||||
|
group: services
|
||||||
|
url: "https://status.fainsin.bzh"
|
||||||
|
interval: 15m
|
||||||
|
conditions:
|
||||||
|
- "[STATUS] == 200"
|
||||||
|
- "[RESPONSE_TIME] < 300"
|
||||||
|
- "[CERTIFICATE_EXPIRATION] > 240h"
|
||||||
|
- "[BODY] == pat(*<title>Health Dashboard | Gatus</title>*)"
|
||||||
|
|
||||||
|
- name: n7.laurent.fainsin.bzh
|
||||||
|
group: n7.laurent.fainsin.bzh
|
||||||
|
url: "https://n7.laurent.fainsin.bzh"
|
||||||
|
interval: 15m
|
||||||
|
conditions:
|
||||||
|
- "[CERTIFICATE_EXPIRATION] > 240h"
|
||||||
|
|
||||||
|
- name: "projet-audionumerique"
|
||||||
|
group: n7.laurent.fainsin.bzh
|
||||||
|
url: "https://n7.laurent.fainsin.bzh/projet-audionumerique/"
|
||||||
|
interval: 15m
|
||||||
|
conditions:
|
||||||
|
- "[STATUS] == 200"
|
||||||
|
- "[RESPONSE_TIME] < 300"
|
||||||
|
- "[BODY] == pat(*Whisper</h1>*)"
|
||||||
|
|
||||||
|
- name: "projet-systemes-algorithmes-repartis"
|
||||||
|
group: n7.laurent.fainsin.bzh
|
||||||
|
url: "https://n7.laurent.fainsin.bzh/projet-systemes-algorithmes-repartis/"
|
||||||
|
interval: 15m
|
||||||
|
conditions:
|
||||||
|
- "[STATUS] == 200"
|
||||||
|
- "[RESPONSE_TIME] < 300"
|
||||||
|
- "[BODY] == pat(*The RAFT Consensus Algorithm*)"
|
||||||
|
|
||||||
|
- name: "projet-intelligence-artificielle-multimedia"
|
||||||
|
group: n7.laurent.fainsin.bzh
|
||||||
|
url: "https://n7.laurent.fainsin.bzh/projet-intelligence-artificielle-multimedia/"
|
||||||
|
interval: 15m
|
||||||
|
conditions:
|
||||||
|
- "[STATUS] == 200"
|
||||||
|
- "[RESPONSE_TIME] < 300"
|
||||||
|
- "[BODY] == pat(*Projet IAM*)"
|
||||||
|
|
||||||
|
- name: "projet-probleme-inverse-3D"
|
||||||
|
group: n7.laurent.fainsin.bzh
|
||||||
|
url: "https://n7.laurent.fainsin.bzh/projet-probleme-inverse-3D/"
|
||||||
|
interval: 15m
|
||||||
|
conditions:
|
||||||
|
- "[STATUS] == 200"
|
||||||
|
- "[RESPONSE_TIME] < 300"
|
||||||
|
- "[BODY] == pat(*slidevjs/slidev*)"
|
||||||
|
- "[BODY] == pat(*/projet-probleme-inverse-3D/assets/index*)"
|
||||||
|
|
||||||
|
- name: "projet-modelisation-geometrique"
|
||||||
|
group: n7.laurent.fainsin.bzh
|
||||||
|
url: "https://n7.laurent.fainsin.bzh/projet-modelisation-geometrique/"
|
||||||
|
interval: 15m
|
||||||
|
conditions:
|
||||||
|
- "[STATUS] == 200"
|
||||||
|
- "[RESPONSE_TIME] < 300"
|
||||||
|
- "[BODY] == pat(*Projet de Modélisation Géométrique*)"
|
||||||
|
|
||||||
|
- name: "projet-long"
|
||||||
|
group: n7.laurent.fainsin.bzh
|
||||||
|
url: "https://n7.laurent.fainsin.bzh/projet-long/"
|
||||||
|
interval: 15m
|
||||||
|
conditions:
|
||||||
|
- "[STATUS] == 200"
|
||||||
|
- "[RESPONSE_TIME] < 300"
|
||||||
|
- "[BODY] == pat(*slidevjs/slidev*)"
|
||||||
|
- "[BODY] == pat(*/projet-long/assets/index*)"
|
||||||
|
|
||||||
|
- name: "projet-oral-japonais"
|
||||||
|
group: n7.laurent.fainsin.bzh
|
||||||
|
url: "https://n7.laurent.fainsin.bzh/projet-oral-japonais/"
|
||||||
|
interval: 15m
|
||||||
|
conditions:
|
||||||
|
- "[STATUS] == 200"
|
||||||
|
- "[RESPONSE_TIME] < 300"
|
||||||
|
- "[BODY] == pat(*わたしたちのまちは*)"
|
||||||
|
|
||||||
|
- name: "projet-oral-anglais"
|
||||||
|
group: n7.laurent.fainsin.bzh
|
||||||
|
url: "https://n7.laurent.fainsin.bzh/projet-oral-anglais/"
|
||||||
|
interval: 15m
|
||||||
|
conditions:
|
||||||
|
- "[STATUS] == 200"
|
||||||
|
- "[RESPONSE_TIME] < 300"
|
||||||
|
- "[BODY] == pat(*<title>CAPTCHA</title>*)"
|
||||||
|
|
||||||
|
- name: "projet-fin-etude"
|
||||||
|
group: n7.laurent.fainsin.bzh
|
||||||
|
url: "https://n7.laurent.fainsin.bzh/projet-fin-etude/"
|
||||||
|
interval: 15m
|
||||||
|
conditions:
|
||||||
|
- "[STATUS] == 200"
|
||||||
|
- "[RESPONSE_TIME] < 300"
|
||||||
|
- "[BODY] == pat(*slidevjs/slidev*)"
|
||||||
|
- "[BODY] == pat(*/projet-fin-etude/assets/index*)"
|
||||||
|
|
||||||
|
- name: "TP-calcul-parallele"
|
||||||
|
group: n7.laurent.fainsin.bzh
|
||||||
|
url: "https://n7.laurent.fainsin.bzh/TP-calcul-parallele/"
|
||||||
|
interval: 15m
|
||||||
|
conditions:
|
||||||
|
- "[STATUS] == 200"
|
||||||
|
- "[RESPONSE_TIME] < 300"
|
||||||
|
- "[BODY] == pat(*<title>Benchmarking Distributed GEMM Algorithms</title>*)"
|
||||||
|
|
||||||
|
- name: "TP-reinforcement-learning"
|
||||||
|
group: n7.laurent.fainsin.bzh
|
||||||
|
url: "https://n7.laurent.fainsin.bzh/TP-reinforcement-learning/"
|
||||||
|
interval: 15m
|
||||||
|
conditions:
|
||||||
|
- "[STATUS] == 200"
|
||||||
|
- "[RESPONSE_TIME] < 300"
|
||||||
|
- "[BODY] == pat(*pluto_notebook*)"
|
||||||
|
|
||||||
|
- name: "TP-traitement-audio-visuel"
|
||||||
|
group: n7.laurent.fainsin.bzh
|
||||||
|
url: "https://n7.laurent.fainsin.bzh/TP-traitement-audio-visuel/"
|
||||||
|
interval: 15m
|
||||||
|
conditions:
|
||||||
|
- "[STATUS] == 200"
|
||||||
|
- "[RESPONSE_TIME] < 300"
|
||||||
|
- "[BODY] == pat(*pluto_notebook*)"
|
16
hosts/cesium/services/gatus/default.nix
Normal file
16
hosts/cesium/services/gatus/default.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{...}: {
|
||||||
|
services.gatus = {
|
||||||
|
enable = true;
|
||||||
|
configPath = ./config.yml;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.nginx = {
|
||||||
|
virtualHosts = {
|
||||||
|
"status.fainsin.bzh" = {
|
||||||
|
forceSSL = true;
|
||||||
|
enableACME = true;
|
||||||
|
locations."/".proxyPass = "http://127.0.0.1:2020";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue