]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - modules/private/websites/default.nix
Refactor websites
[perso/Immae/Config/Nix.git] / modules / private / websites / default.nix
index 3d43b1108fab5f7ce4a7b91fbffb97ec811ee4f5..5c33e1c15372037c4e293cf123abc08d672f2ee8 100644 (file)
@@ -43,7 +43,21 @@ let
       '';
     };
     global = {
-      extraConfig = (pkgs.webapps.apache-default.override { inherit www_root;}).apacheConfig;
+      extraConfig = ''
+        ErrorDocument 500 /maintenance_immae.html
+        ErrorDocument 501 /maintenance_immae.html
+        ErrorDocument 502 /maintenance_immae.html
+        ErrorDocument 503 /maintenance_immae.html
+        ErrorDocument 504 /maintenance_immae.html
+        Alias /maintenance_immae.html ${www_root}/maintenance_immae.html
+        ProxyPass /maintenance_immae.html !
+
+        AliasMatch "(.*)/googleb6d69446ff4ca3e5.html" ${www_root}/googleb6d69446ff4ca3e5.html
+        <Directory ${www_root}>
+          AllowOverride None
+          Require all granted
+        </Directory>
+      '';
     };
     apaxy = {
       extraConfig = (pkgs.webapps.apache-theme.override { inherit theme_root; }).apacheConfig;
@@ -64,17 +78,7 @@ let
   makeExtraConfig = (builtins.filter (x: x != null) (lib.attrsets.mapAttrsToList (n: v: v.extraConfig or null) apacheConfig));
 in
 {
-  options.myServices.websites = {
-    enable = lib.mkEnableOption "enable websites";
-
-    webappDirs = lib.mkOption {
-      type = lib.types.attrsOf lib.types.path;
-      description = ''
-        Webapp paths to create in /run/current-system/webapps
-        '';
-      default = {};
-    };
-  };
+  options.myServices.websites.enable = lib.mkEnableOption "enable websites";
 
   config = lib.mkIf config.myServices.websites.enable {
     services.duplyBackup.profiles.php = {
@@ -213,61 +217,75 @@ in
       };
     };
 
-    system.extraSystemBuilderCmds = lib.mkIf (builtins.length (builtins.attrValues config.myServices.websites.webappDirs) > 0) ''
-    mkdir -p $out/webapps
-    ${builtins.concatStringsSep "\n" (lib.attrsets.mapAttrsToList (name: path: "ln -s ${path} $out/webapps/${name}") config.myServices.websites.webappDirs)}
-    '';
-
+    services.websites.webappDirs = {
+      _www = ./_www;
+      _theme = pkgs.webapps.apache-theme.theme;
+    };
     myServices.websites = {
-      webappDirs = {
-        _www = pkgs.webapps.apache-default.www;
-        _theme = pkgs.webapps.apache-theme.theme;
-      };
+      capitaines.landing_pages.enable = true;
 
-      isabelle.aten_integration.enable = true;
-      isabelle.aten_production.enable = true;
-      isabelle.iridologie.enable = true;
+      chloe = {
+        integration.enable = true;
+        production.enable = true;
+      };
 
-      capitaines.production.enable = true;
+      connexionswing = {
+        integration.enable = true;
+        production.enable = true;
+      };
 
-      chloe.integration.enable = true;
-      chloe.production.enable = true;
+      denise = {
+        evariste.enable = true;
+        denisejerome.enable = true;
+      };
 
-      connexionswing.integration.enable = true;
-      connexionswing.production.enable = true;
+      emilia.moodle.enable = true;
 
-      denisejerome.production.enable = true;
+      florian = {
+        app.enable = true;
+        integration.enable = true;
+        production.enable = true;
+      };
 
-      emilia.production.enable = true;
-      emilia.richie_production.enable = true;
+      immae = {
+        production.enable = true;
+        release.enable = true;
+        temp.enable = true;
+      };
 
-      florian.app.enable = true;
-      florian.integration.enable = true;
-      florian.production.enable = true;
+      isabelle = {
+        aten_integration.enable = true;
+        aten_production.enable = true;
+        iridologie.enable = true;
+      };
 
-      immae.production.enable = true;
-      immae.release.enable = true;
-      immae.temp.enable = true;
+      jerome.naturaloutil.enable = true;
 
       leila.production.enable = true;
 
-      ludivinecassal.integration.enable = true;
-      ludivinecassal.production.enable = true;
+      ludivine = {
+        integration.enable = true;
+        production.enable = true;
+      };
 
       nassime.production.enable = true;
 
-      evariste.production.enable = true;
-      naturaloutil.production.enable = true;
-      telioTortay.production.enable = true;
+      papa = {
+        surveillance.enable = true;
+        maison_bbc.enable = true;
+      };
 
-      papa.surveillance.enable = true;
-      papa.maison_bbc.enable = true;
+      piedsjaloux = {
+        integration.enable = true;
+        production.enable = true;
+      };
 
-      piedsjaloux.integration.enable = true;
-      piedsjaloux.production.enable = true;
+      richie.production.enable = true;
 
       syden.peertube.enable = true;
 
+      telio_tortay.production.enable = true;
+
       tools.cloud.enable = true;
       tools.dav.enable = true;
       tools.db.enable = true;