From a913961060babeddd0105cb19342dbc793a5cf03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laure=CE=B7t?= Date: Sun, 6 Oct 2024 18:55:25 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=8E=A8=20(cesium)=20dry-ify=20a=20little?= =?UTF-8?q?=20bit=20the=20nginx=20n7=20sites=20Could=20be=20even=20more=20?= =?UTF-8?q?dry=20if=20got=20rid=20of=20the=20fetchgit=20precompiled=20page?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- hosts/cesium/services/nginx/default.nix | 3 -- .../cesium/services/nginx/laurent/resume.nix | 1 + .../cesium/services/nginx/laurent/website.nix | 4 ++ .../services/nginx/n7/TP-calcul-parallele.nix | 10 +++-- .../nginx/n7/TP-reinforcement-learning.nix | 10 +++-- .../nginx/n7/TP-traitement-audio-visuel.nix | 10 +++-- hosts/cesium/services/nginx/n7/default.nix | 42 +++++++++++-------- .../nginx/n7/projet-audionumerique.nix | 10 +++-- .../services/nginx/n7/projet-fin-etude.nix | 19 +++++---- ...t-intelligence-artificielle-multimedia.nix | 14 +++---- .../cesium/services/nginx/n7/projet-long.nix | 15 ++++--- .../n7/projet-modelisation-geometrique.nix | 10 +++-- .../services/nginx/n7/projet-oral-anglais.nix | 10 +++-- .../nginx/n7/projet-oral-japonais.nix | 10 +++-- .../nginx/n7/projet-probleme-inverse-3D.nix | 15 ++++--- .../projet-systemes-algorithmes-repartis.nix | 10 +++-- 16 files changed, 117 insertions(+), 76 deletions(-) diff --git a/hosts/cesium/services/nginx/default.nix b/hosts/cesium/services/nginx/default.nix index 7410ea2..7aa7e94 100644 --- a/hosts/cesium/services/nginx/default.nix +++ b/hosts/cesium/services/nginx/default.nix @@ -6,9 +6,6 @@ recommendedOptimisation = true; recommendedGzipSettings = true; recommendedProxySettings = true; - - # disable max body size - # clientMaxBodySize = "0"; }; imports = [ diff --git a/hosts/cesium/services/nginx/laurent/resume.nix b/hosts/cesium/services/nginx/laurent/resume.nix index 098fcb3..85dd502 100644 --- a/hosts/cesium/services/nginx/laurent/resume.nix +++ b/hosts/cesium/services/nginx/laurent/resume.nix @@ -7,6 +7,7 @@ "resume.laurent.fainsin.bzh" = { enableACME = true; forceSSL = true; + locations = { "/" = { root = inputs.resume.packages.${system}.default; diff --git a/hosts/cesium/services/nginx/laurent/website.nix b/hosts/cesium/services/nginx/laurent/website.nix index 4396859..3715c8a 100644 --- a/hosts/cesium/services/nginx/laurent/website.nix +++ b/hosts/cesium/services/nginx/laurent/website.nix @@ -7,17 +7,21 @@ "laurent.fainsin.bzh" = { enableACME = true; forceSSL = true; + locations = { "/" = { root = inputs.website.packages.${system}.default; }; }; }; + "fainsin.bzh" = { enableACME = true; forceSSL = true; + locations."/".return = ''301 "$scheme://laurent.fainsin.bzh$request_uri"''; }; + default = { default = true; locations."/".return = ''301 "$scheme://laurent.fainsin.bzh" ''; diff --git a/hosts/cesium/services/nginx/n7/TP-calcul-parallele.nix b/hosts/cesium/services/nginx/n7/TP-calcul-parallele.nix index 69019bd..d52b746 100644 --- a/hosts/cesium/services/nginx/n7/TP-calcul-parallele.nix +++ b/hosts/cesium/services/nginx/n7/TP-calcul-parallele.nix @@ -1,17 +1,19 @@ { inputs, system, + location, + vhost, ... }: { - services.nginx.virtualHosts."n7.laurent.fainsin.bzh".locations."/TP-calcul-parallele/" = { + services.nginx.virtualHosts.${vhost}.locations."/${location}/" = { alias = inputs.TP-calcul-parallele.packages.${system}.report + "/"; }; services.gatus.settings.endpoints = [ { - name = "TP-calcul-parallele"; - group = "n7.laurent.fainsin.bzh"; - url = "https://n7.laurent.fainsin.bzh/TP-calcul-parallele/"; + name = location; + group = vhost; + url = "https://${vhost}/${location}/"; interval = "15m"; conditions = [ "[STATUS] == 200" diff --git a/hosts/cesium/services/nginx/n7/TP-reinforcement-learning.nix b/hosts/cesium/services/nginx/n7/TP-reinforcement-learning.nix index 453ad42..8bb0e78 100644 --- a/hosts/cesium/services/nginx/n7/TP-reinforcement-learning.nix +++ b/hosts/cesium/services/nginx/n7/TP-reinforcement-learning.nix @@ -1,17 +1,19 @@ { inputs, system, + location, + vhost, ... }: { - services.nginx.virtualHosts."n7.laurent.fainsin.bzh".locations."/TP-reinforcement-learning/" = { + services.nginx.virtualHosts.${vhost}.locations."/${location}/" = { alias = inputs.TP-reinforcement-learning.packages.${system}.notebooks + "/"; }; services.gatus.settings.endpoints = [ { - name = "TP-reinforcement-learning"; - group = "n7.laurent.fainsin.bzh"; - url = "https://n7.laurent.fainsin.bzh/TP-reinforcement-learning/"; + name = location; + group = vhost; + url = "https://${vhost}/${location}/"; interval = "15m"; conditions = [ "[STATUS] == 200" diff --git a/hosts/cesium/services/nginx/n7/TP-traitement-audio-visuel.nix b/hosts/cesium/services/nginx/n7/TP-traitement-audio-visuel.nix index e2551fc..d809ed4 100644 --- a/hosts/cesium/services/nginx/n7/TP-traitement-audio-visuel.nix +++ b/hosts/cesium/services/nginx/n7/TP-traitement-audio-visuel.nix @@ -1,17 +1,19 @@ { inputs, system, + location, + vhost, ... }: { - services.nginx.virtualHosts."n7.laurent.fainsin.bzh".locations."/TP-traitement-audio-visuel/" = { + services.nginx.virtualHosts.${vhost}.locations."/${location}/" = { alias = inputs.TP-traitement-audio-visuel.packages.${system}.notebooks + "/"; }; services.gatus.settings.endpoints = [ { - name = "TP-traitement-audio-visuel"; - group = "n7.laurent.fainsin.bzh"; - url = "https://n7.laurent.fainsin.bzh/TP-traitement-audio-visuel/"; + name = location; + group = vhost; + url = "https://${vhost}/${location}/"; interval = "15m"; conditions = [ "[STATUS] == 200" diff --git a/hosts/cesium/services/nginx/n7/default.nix b/hosts/cesium/services/nginx/n7/default.nix index 50a6c76..41c7b58 100644 --- a/hosts/cesium/services/nginx/n7/default.nix +++ b/hosts/cesium/services/nginx/n7/default.nix @@ -1,6 +1,14 @@ -{...}: { +{ + pkgs, + inputs, + system, + ... +}: let + vhost = "n7.laurent.fainsin.bzh"; + withLocation = location: {inherit inputs pkgs system vhost location;}; +in { services.nginx.virtualHosts = { - "n7.laurent.fainsin.bzh" = { + ${vhost} = { enableACME = true; forceSSL = true; @@ -9,25 +17,25 @@ }; imports = [ - ./projet-audionumerique.nix - ./projet-fin-etude.nix - ./projet-intelligence-artificielle-multimedia.nix - ./projet-long.nix - ./projet-modelisation-geometrique.nix - ./projet-oral-anglais.nix - ./projet-oral-japonais.nix - ./projet-probleme-inverse-3D.nix - ./projet-systemes-algorithmes-repartis.nix - ./TP-calcul-parallele.nix - ./TP-reinforcement-learning.nix - ./TP-traitement-audio-visuel.nix + (import ./projet-audionumerique.nix (withLocation "projet-audionumerique")) + (import ./projet-fin-etude.nix (withLocation "projet-fin-etude")) + (import ./projet-intelligence-artificielle-multimedia.nix (withLocation "projet-intelligence-artificielle-multimedia")) + (import ./projet-long.nix (withLocation "projet-long")) + (import ./projet-modelisation-geometrique.nix (withLocation "projet-modelisation-geometrique")) + (import ./projet-oral-anglais.nix (withLocation "projet-oral-anglais")) + (import ./projet-oral-japonais.nix (withLocation "projet-oral-japonais")) + (import ./projet-probleme-inverse-3D.nix (withLocation "projet-probleme-inverse-3D")) + (import ./projet-systemes-algorithmes-repartis.nix (withLocation "projet-systemes-algorithmes-repartis")) + (import ./TP-calcul-parallele.nix (withLocation "TP-calcul-parallele")) + (import ./TP-reinforcement-learning.nix (withLocation "TP-reinforcement-learning")) + (import ./TP-traitement-audio-visuel.nix (withLocation "TP-traitement-audio-visuel")) ]; services.gatus.settings.endpoints = [ { - name = "n7.laurent.fainsin.bzh"; - group = "n7.laurent.fainsin.bzh"; - url = "https://n7.laurent.fainsin.bzh"; + name = vhost; + group = vhost; + url = "https://${vhost}"; interval = "15m"; conditions = [ "[CERTIFICATE_EXPIRATION] > 240h" diff --git a/hosts/cesium/services/nginx/n7/projet-audionumerique.nix b/hosts/cesium/services/nginx/n7/projet-audionumerique.nix index 638f5e3..799f464 100644 --- a/hosts/cesium/services/nginx/n7/projet-audionumerique.nix +++ b/hosts/cesium/services/nginx/n7/projet-audionumerique.nix @@ -1,17 +1,19 @@ { inputs, system, + vhost, + location, ... }: { - services.nginx.virtualHosts."n7.laurent.fainsin.bzh".locations."/projet-audionumerique/" = { + services.nginx.virtualHosts.${vhost}.locations."/${location}/" = { alias = inputs.projet-audionumerique.packages.${system}.slides + "/"; }; services.gatus.settings.endpoints = [ { - name = "projet-audionumerique"; - group = "n7.laurent.fainsin.bzh"; - url = "https://n7.laurent.fainsin.bzh/projet-audionumerique/"; + name = location; + group = vhost; + url = "https://${vhost}/${location}/"; interval = "15m"; conditions = [ "[STATUS] == 200" diff --git a/hosts/cesium/services/nginx/n7/projet-fin-etude.nix b/hosts/cesium/services/nginx/n7/projet-fin-etude.nix index 6d19ca3..1783bbb 100644 --- a/hosts/cesium/services/nginx/n7/projet-fin-etude.nix +++ b/hosts/cesium/services/nginx/n7/projet-fin-etude.nix @@ -1,27 +1,32 @@ -{pkgs, ...}: let +{ + pkgs, + vhost, + location, + ... +}: let pages = pkgs.fetchgit { url = "https://git.fainsin.bzh/ENSEEIHT/projet-fin-etude-rapport"; rev = "32fe5c7ec6d67241951fdaf001e3da1c41b29dcf"; # pages sha256 = "sha256-pOu0lohJ1Yqg/a5hqnNTePTrU8t5By5AbhUAJfL5MBg="; }; in { - services.nginx.virtualHosts."n7.laurent.fainsin.bzh".locations."/projet-fin-etude/" = { + services.nginx.virtualHosts.${vhost}.locations."/${location}/" = { alias = "${pages}/"; index = "index.html"; - tryFiles = "$uri $uri/ /projet-fin-etude/index.html"; + tryFiles = "$uri $uri/ /${location}/index.html"; }; services.gatus.settings.endpoints = [ { - name = "projet-fin-etude"; - group = "n7.laurent.fainsin.bzh"; - url = "https://n7.laurent.fainsin.bzh/projet-fin-etude/"; + name = location; + group = vhost; + url = "https://${vhost}/${location}/"; interval = "15m"; conditions = [ "[STATUS] == 200" "[RESPONSE_TIME] < 300" "[BODY] == pat(*slidevjs/slidev*)" - "[BODY] == pat(*/projet-fin-etude/assets/index*)" + "[BODY] == pat(*/${location}/assets/index*)" ]; } ]; diff --git a/hosts/cesium/services/nginx/n7/projet-intelligence-artificielle-multimedia.nix b/hosts/cesium/services/nginx/n7/projet-intelligence-artificielle-multimedia.nix index d9a7ef0..bcddde0 100644 --- a/hosts/cesium/services/nginx/n7/projet-intelligence-artificielle-multimedia.nix +++ b/hosts/cesium/services/nginx/n7/projet-intelligence-artificielle-multimedia.nix @@ -1,19 +1,19 @@ { inputs, system, + vhost, + location, ... }: { - services.nginx.virtualHosts."n7.laurent.fainsin.bzh".locations."/projet-intelligence-artificielle-multimedia/" = { - alias = - inputs.projet-intelligence-artificielle-multimedia.packages.${system}.slides - + "/"; + services.nginx.virtualHosts.${vhost}.locations."/${location}/" = { + alias = inputs.projet-intelligence-artificielle-multimedia.packages.${system}.slides + "/"; }; services.gatus.settings.endpoints = [ { - name = "projet-intelligence-artificielle-multimedia"; - group = "n7.laurent.fainsin.bzh"; - url = "https://n7.laurent.fainsin.bzh/projet-intelligence-artificielle-multimedia/"; + name = location; + group = vhost; + url = "https://${vhost}/${location}/"; interval = "15m"; conditions = [ "[STATUS] == 200" diff --git a/hosts/cesium/services/nginx/n7/projet-long.nix b/hosts/cesium/services/nginx/n7/projet-long.nix index 80f1a7d..4e83879 100644 --- a/hosts/cesium/services/nginx/n7/projet-long.nix +++ b/hosts/cesium/services/nginx/n7/projet-long.nix @@ -1,11 +1,16 @@ -{pkgs, ...}: let +{ + pkgs, + location, + vhost, + ... +}: let pages = pkgs.fetchgit { url = "https://git.fainsin.bzh/ENSEEIHT/projet-long"; rev = "8290710fa7461c486dc727966c8eaa2234ae2e7d"; # pages sha256 = "1xwc0hfdn77183vvm6gadibdd0bh379192qkzf2xvidfhb8yzgqr"; }; in { - services.nginx.virtualHosts."n7.laurent.fainsin.bzh".locations."/projet-long/" = { + services.nginx.virtualHosts.${vhost}.locations."/${location}/" = { alias = "${pages}/"; index = "index.html"; tryFiles = "$uri $uri/ /projet-long/index.html"; @@ -13,9 +18,9 @@ in { services.gatus.settings.endpoints = [ { - name = "projet-long"; - group = "n7.laurent.fainsin.bzh"; - url = "https://n7.laurent.fainsin.bzh/projet-long/"; + name = location; + group = vhost; + url = "https://${vhost}/${location}/"; interval = "15m"; conditions = [ "[STATUS] == 200" diff --git a/hosts/cesium/services/nginx/n7/projet-modelisation-geometrique.nix b/hosts/cesium/services/nginx/n7/projet-modelisation-geometrique.nix index 30e7ef0..67b46d4 100644 --- a/hosts/cesium/services/nginx/n7/projet-modelisation-geometrique.nix +++ b/hosts/cesium/services/nginx/n7/projet-modelisation-geometrique.nix @@ -1,17 +1,19 @@ { inputs, system, + location, + vhost, ... }: { - services.nginx.virtualHosts."n7.laurent.fainsin.bzh".locations."/projet-modelisation-geometrique/" = { + services.nginx.virtualHosts.${vhost}.locations."/${location}/" = { alias = inputs.projet-modelisation-geometrique.packages.${system}.report + "/"; }; services.gatus.settings.endpoints = [ { - name = "projet-modelisation-geometrique"; - group = "n7.laurent.fainsin.bzh"; - url = "https://n7.laurent.fainsin.bzh/projet-modelisation-geometrique/"; + name = location; + group = vhost; + url = "https://${vhost}/${location}/"; interval = "15m"; conditions = [ "[STATUS] == 200" diff --git a/hosts/cesium/services/nginx/n7/projet-oral-anglais.nix b/hosts/cesium/services/nginx/n7/projet-oral-anglais.nix index f868068..6ffb38a 100644 --- a/hosts/cesium/services/nginx/n7/projet-oral-anglais.nix +++ b/hosts/cesium/services/nginx/n7/projet-oral-anglais.nix @@ -1,17 +1,19 @@ { inputs, system, + location, + vhost, ... }: { - services.nginx.virtualHosts."n7.laurent.fainsin.bzh".locations."/projet-oral-anglais/" = { + services.nginx.virtualHosts.${vhost}.locations."/${location}/" = { alias = inputs.projet-oral-anglais.packages.${system}.slides + "/"; }; services.gatus.settings.endpoints = [ { - name = "projet-oral-anglais"; - group = "n7.laurent.fainsin.bzh"; - url = "https://n7.laurent.fainsin.bzh/projet-oral-anglais/"; + name = location; + group = vhost; + url = "https://${vhost}/${location}/"; interval = "15m"; conditions = [ "[STATUS] == 200" diff --git a/hosts/cesium/services/nginx/n7/projet-oral-japonais.nix b/hosts/cesium/services/nginx/n7/projet-oral-japonais.nix index f7a9184..99502a3 100644 --- a/hosts/cesium/services/nginx/n7/projet-oral-japonais.nix +++ b/hosts/cesium/services/nginx/n7/projet-oral-japonais.nix @@ -1,17 +1,19 @@ { inputs, system, + location, + vhost, ... }: { - services.nginx.virtualHosts."n7.laurent.fainsin.bzh".locations."/projet-oral-japonais/" = { + services.nginx.virtualHosts.${vhost}.locations."/${location}/" = { alias = inputs.projet-oral-japonais.packages.${system}.slides + "/"; }; services.gatus.settings.endpoints = [ { - name = "projet-oral-japonais"; - group = "n7.laurent.fainsin.bzh"; - url = "https://n7.laurent.fainsin.bzh/projet-oral-japonais/"; + name = location; + group = vhost; + url = "https://${vhost}/${location}/"; interval = "15m"; conditions = [ "[STATUS] == 200" diff --git a/hosts/cesium/services/nginx/n7/projet-probleme-inverse-3D.nix b/hosts/cesium/services/nginx/n7/projet-probleme-inverse-3D.nix index 7b3292a..7c217db 100644 --- a/hosts/cesium/services/nginx/n7/projet-probleme-inverse-3D.nix +++ b/hosts/cesium/services/nginx/n7/projet-probleme-inverse-3D.nix @@ -1,11 +1,16 @@ -{pkgs, ...}: let +{ + pkgs, + location, + vhost, + ... +}: let pages = pkgs.fetchgit { url = "https://git.fainsin.bzh/ENSEEIHT/projet-probleme-inverse-3D"; rev = "9c75aadaf1b779e4f88fd42de163dedd8d5e918a"; # pages sha256 = "19s8ccvarlps70aqc8njn92sbmmjbpc1d7q08hdb5apghmkplj9f"; }; in { - services.nginx.virtualHosts."n7.laurent.fainsin.bzh".locations."/projet-probleme-inverse-3D/" = { + services.nginx.virtualHosts.${vhost}.locations."/${location}/" = { alias = "${pages}/"; index = "index.html"; tryFiles = "$uri $uri/ /projet-probleme-inverse-3D/index.html"; @@ -13,9 +18,9 @@ in { services.gatus.settings.endpoints = [ { - name = "projet-probleme-inverse-3D"; - group = "n7.laurent.fainsin.bzh"; - url = "https://n7.laurent.fainsin.bzh/projet-probleme-inverse-3D/"; + name = location; + group = vhost; + url = "https://${vhost}/${location}/"; interval = "15m"; conditions = [ "[STATUS] == 200" diff --git a/hosts/cesium/services/nginx/n7/projet-systemes-algorithmes-repartis.nix b/hosts/cesium/services/nginx/n7/projet-systemes-algorithmes-repartis.nix index 77cddfb..804c919 100644 --- a/hosts/cesium/services/nginx/n7/projet-systemes-algorithmes-repartis.nix +++ b/hosts/cesium/services/nginx/n7/projet-systemes-algorithmes-repartis.nix @@ -1,17 +1,19 @@ { inputs, system, + location, + vhost, ... }: { - services.nginx.virtualHosts."n7.laurent.fainsin.bzh".locations."/projet-systemes-algorithmes-repartis/" = { + services.nginx.virtualHosts.${vhost}.locations."/${location}/" = { alias = inputs.projet-systemes-algorithmes-repartis.packages.${system}.slides + "/"; }; services.gatus.settings.endpoints = [ { - name = "projet-systemes-algorithmes-repartis"; - group = "n7.laurent.fainsin.bzh"; - url = "https://n7.laurent.fainsin.bzh/projet-systemes-algorithmes-repartis/"; + name = location; + group = vhost; + url = "https://${vhost}/${location}/"; interval = "15m"; conditions = [ "[STATUS] == 200"