forked from DGNum/infrastructure
70 lines
1.5 KiB
Nix
70 lines
1.5 KiB
Nix
_:
|
|
|
|
let
|
|
retired_host = "retired.dgnum.eu";
|
|
|
|
mkRetired =
|
|
hosts:
|
|
builtins.listToAttrs (
|
|
builtins.map (name: {
|
|
inherit name;
|
|
value = {
|
|
enableACME = true;
|
|
forceSSL = true;
|
|
locations."/".return = "301 https://${retired_host}/${name}";
|
|
};
|
|
}) hosts
|
|
);
|
|
|
|
mkSub = domain: builtins.map (s: "${s}.${domain}");
|
|
mkSubs = attrs: builtins.concatLists (builtins.attrValues (builtins.mapAttrs mkSub attrs));
|
|
|
|
mkRedirection =
|
|
_:
|
|
{ to }:
|
|
{
|
|
globalRedirect = to;
|
|
enableACME = true;
|
|
forceSSL = true;
|
|
};
|
|
|
|
redirections = {
|
|
"calendrier.eleves.ens.fr".to = "calendrier.dgnum.eu";
|
|
"docs.beta.rz.ens.wtf".to = "pads.dgnum.eu";
|
|
"git.rz.ens.wtf".to = "git.dgnum.eu";
|
|
"notion.rz.ens.wtf".to = "docs.dgnum.eu";
|
|
"nuage.beta.rz.ens.wtf".to = "cloud.dgnum.eu";
|
|
"rdv.dgnum.eu".to = "meet.dgnum.eu";
|
|
"www.bda.ens.fr".to = "bda.ens.fr";
|
|
"bda.wp.dgnum.eu".to = "bda.ens.fr";
|
|
};
|
|
|
|
retired = mkSubs {
|
|
"ens.fr" = [
|
|
"alevins"
|
|
"www.climatenavigator"
|
|
];
|
|
"ens.wtf" = [ "photos" ];
|
|
"rz.ens.wtf" = [
|
|
"s3"
|
|
"cdn"
|
|
];
|
|
"beta.rz.ens.wtf" = [
|
|
"todo"
|
|
"minecraft"
|
|
"factorio"
|
|
"home"
|
|
"pads"
|
|
"api.pads"
|
|
"files.pads"
|
|
"sandbox.pads"
|
|
"jurisprudens"
|
|
"rstudio"
|
|
];
|
|
};
|
|
in
|
|
{
|
|
services.nginx.virtualHosts = {
|
|
${retired_host}.default = true;
|
|
} // (builtins.mapAttrs mkRedirection redirections) // (mkRetired retired);
|
|
}
|