38 lines
940 B
Nix
38 lines
940 B
Nix
{ lib, pkgs, sources, ... }:
|
|
|
|
let
|
|
package = (import sources.metis { inherit pkgs; }).production;
|
|
|
|
providers = {
|
|
klub-reseau = "nuage.beta.rz.ens.wtf";
|
|
eleves-ens = "cloud.eleves.ens.fr";
|
|
frama-agenda = "framagenda.org";
|
|
};
|
|
|
|
|
|
in {
|
|
services.nginx.virtualHosts."calendrier.dgnum.eu" = {
|
|
serverAliases = [
|
|
"calendrier.eleves.ens.fr"
|
|
];
|
|
enableACME = true;
|
|
forceSSL = true;
|
|
root = package;
|
|
|
|
locations = lib.mapAttrs' (name: attrs:
|
|
lib.nameValuePair "/cal/${name}/" {
|
|
extraConfig = ''
|
|
proxy_set_header X-Forwarded-Host $host;
|
|
proxy_set_header X-Forwarded-Server $host;
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_pass https://${
|
|
providers.${name}
|
|
}/remote.php/dav/public-calendars/;
|
|
'';
|
|
}) providers;
|
|
|
|
extraConfig = ''
|
|
rewrite ^/calendrier(.*)$ $1 permanent;
|
|
'';
|
|
};
|
|
}
|