(cesium/services) create status pages with gatus

This commit is contained in:
Laureηt 2024-01-14 19:46:21 +01:00
parent b6af810f5d
commit 072f957773
Signed by: Laurent
SSH key fingerprint: SHA256:kZEpW8cMJ54PDeCvOhzreNr4FSh6R13CMGH/POoO8DI
5 changed files with 217 additions and 24 deletions

View file

@ -193,11 +193,11 @@
]
},
"locked": {
"lastModified": 1705075138,
"narHash": "sha256-0slYsXoR1Sd5FwTfFZLYxAsI015+J4lvgvo55u4Gw1A=",
"lastModified": 1705231690,
"narHash": "sha256-PYIdQ6eb1Zs0sKM0g3y0/OHqfsMn8tjNypGjvH8WmfI=",
"owner": "nix-community",
"repo": "disko",
"rev": "f78b6498f69e04514cb84393e5daba669198c1c1",
"rev": "036d480ae895afff54da5034331950827a7f317a",
"type": "github"
},
"original": {
@ -348,11 +348,11 @@
]
},
"locked": {
"lastModified": 1705104164,
"narHash": "sha256-pllCu3Hcm1wP/B0SUxgUXvHeEd4w8s2aVrEQRdIL1yo=",
"lastModified": 1705169127,
"narHash": "sha256-j9OEtNxOIPWZWjbECVMkI1TO17SzlpHMm0LnVWKOR/g=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "0912d26b30332ae6a90e1b321ff88e80492127dd",
"rev": "f2942f3385f1b35cc8a1abb03a45e29c9cb4d3c8",
"type": "github"
},
"original": {
@ -370,11 +370,11 @@
"xdph": "xdph"
},
"locked": {
"lastModified": 1705070596,
"narHash": "sha256-Xq3JOddIH7AnACEHGaSKg71IF8CATE1zSTzdgR4pnlo=",
"lastModified": 1705253252,
"narHash": "sha256-u3gEnjPq5zJR+/bJXHFw1gH7MB3ovj5bHFe3f7Pb2eo=",
"owner": "hyprwm",
"repo": "Hyprland",
"rev": "c4da4b026deefd58f532353b64e9f17130e760ca",
"rev": "b6516bad0281efb55195e8db180aa2dcaf8b98e4",
"type": "github"
},
"original": {
@ -494,11 +494,11 @@
},
"nixos-hardware": {
"locked": {
"lastModified": 1704786394,
"narHash": "sha256-aJM0ln9fMGWw1+tjyl5JZWZ3ahxAA2gw2ZpZY/hkEMs=",
"lastModified": 1705187059,
"narHash": "sha256-dSj+iIYqLA+7/5rLXWfUxw9IXRm0w8Mrm39af8klUH0=",
"owner": "nixos",
"repo": "nixos-hardware",
"rev": "b34a6075e9e298c4124e35c3ccaf2210c1f3a43b",
"rev": "ef811636cc847355688804593282078bac7758d4",
"type": "github"
},
"original": {
@ -614,18 +614,18 @@
},
"nixpkgs_4": {
"locked": {
"lastModified": 1704722960,
"narHash": "sha256-mKGJ3sPsT6//s+Knglai5YflJUF2DGj7Ai6Ynopz0kI=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "317484b1ead87b9c1b8ac5261a8d2dd748a0492d",
"type": "github"
"dirtyRev": "9b19f5e77dd906cb52dade0b7bd280339d2a1f3d-dirty",
"dirtyShortRev": "9b19f5e77dd9-dirty",
"lastModified": 1705133751,
"narHash": "sha256-N2uMQQ9DEjVcUbYx+vMlvJcgPGMZN1DAl8yeyVJpf7I=",
"shallow": true,
"type": "git",
"url": "file:///home/laurent/Documents/github.com/NixOS/nixpkgs"
},
"original": {
"owner": "NixOS",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
"shallow": true,
"type": "git",
"url": "file:///home/laurent/Documents/github.com/NixOS/nixpkgs"
}
},
"pre-commit-hooks-nix": {

View file

@ -7,8 +7,8 @@
inputs = {
# core stuff
nixpkgs = {
url = "github:NixOS/nixpkgs/nixos-unstable";
# url = "git+file:///home/laurent/Documents/nixpkgs?shallow=1";
# url = "github:NixOS/nixpkgs/nixos-unstable";
url = "git+file:///home/laurent/Documents/github.com/NixOS/nixpkgs?shallow=1";
};
home-manager = {
url = "github:nix-community/home-manager";

View file

@ -2,6 +2,7 @@
imports = [
./acme
./atuin
./gatus
./gitea
./nginx
./ssh

View 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*)"

View 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";
};
};
};
}