diff --git a/flake.lock b/flake.lock
index e4b31aa..8d84287 100644
--- a/flake.lock
+++ b/flake.lock
@@ -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": {
diff --git a/flake.nix b/flake.nix
index 018ac62..461fc80 100644
--- a/flake.nix
+++ b/flake.nix
@@ -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";
diff --git a/hosts/cesium/services/default.nix b/hosts/cesium/services/default.nix
index dbf16f3..79668d7 100644
--- a/hosts/cesium/services/default.nix
+++ b/hosts/cesium/services/default.nix
@@ -2,6 +2,7 @@
imports = [
./acme
./atuin
+ ./gatus
./gitea
./nginx
./ssh
diff --git a/hosts/cesium/services/gatus/config.yml b/hosts/cesium/services/gatus/config.yml
new file mode 100644
index 0000000..8a15783
--- /dev/null
+++ b/hosts/cesium/services/gatus/config.yml
@@ -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(*
Laurent Fainsin*)"
+ - "[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(*Explore - gitea: Gitea Service*)"
+
+ - 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(*Health Dashboard | Gatus*)"
+
+ - 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*)"
+
+ - 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(*CAPTCHA*)"
+
+ - 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(*Benchmarking Distributed GEMM Algorithms*)"
+
+ - 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*)"
diff --git a/hosts/cesium/services/gatus/default.nix b/hosts/cesium/services/gatus/default.nix
new file mode 100644
index 0000000..501da56
--- /dev/null
+++ b/hosts/cesium/services/gatus/default.nix
@@ -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";
+ };
+ };
+ };
+}