]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - modules/private/websites/default.nix
Add new Patrick website and reorganise files
[perso/Immae/Config/Nix.git] / modules / private / websites / default.nix
index d55d2dd933dd67540b1df709cec88a2d3a58a525..4864034990d81cefb848fc5042a039fb401dc145 100644 (file)
@@ -1,7 +1,7 @@
 { lib, pkgs, config, ... }:
 let
-  www_root = "/run/current-system/webapps/_www";
-  theme_root = "/run/current-system/webapps/_theme";
+  www_root = ./_www;
+  theme_root = pkgs.webapps.apache-theme.theme;
   apacheConfig = {
     cache = {
       # This setting permits to ignore time-based cache for files in the
@@ -52,7 +52,7 @@ let
           LDAPOpCacheTTL 600
         </IfModule>
 
-        Include /var/secrets/apache-ldap
+        Include ${config.secrets.fullPaths."apache-ldap"}
       '';
     };
     global = {
@@ -89,19 +89,23 @@ let
   };
   makeModules = lib.lists.flatten (lib.attrsets.mapAttrsToList (n: v: v.modules or []) apacheConfig);
   makeExtraConfig = (builtins.filter (x: x != null) (lib.attrsets.mapAttrsToList (n: v: v.extraConfig or null) apacheConfig));
+  moomin = let
+    lines = lib.splitString "\n" (lib.fileContents ./moomin.txt);
+    pad = width: str: let
+        padWidth = width - lib.stringLength str;
+        padding = lib.concatStrings (lib.genList (lib.const "0") padWidth);
+      in lib.optionalString (padWidth > 0) padding + str;
+  in
+    lib.imap0 (i: e: ''Header always set "X-Moomin-${pad 2 (builtins.toString i)}" "${e}"'') lines;
 in
 {
   options.myServices.websites.enable = lib.mkEnableOption "enable websites";
 
   config = lib.mkIf config.myServices.websites.enable {
-    services.duplyBackup.profiles.php = {
-      rootDir = "/var/lib/php";
-    };
     users.users.wwwrun.extraGroups = [ "keys" ];
     networking.firewall.allowedTCPPorts = [ 80 443 ];
 
-    secrets.keys = [{
-      dest = "apache-ldap";
+    secrets.keys."apache-ldap" = {
       user = "wwwrun";
       group = "wwwrun";
       permissions = "0400";
@@ -117,7 +121,7 @@ in
           </IfModule>
         </Macro>
         '';
-    }];
+    };
 
     system.activationScripts = {
       httpd = ''
@@ -140,9 +144,9 @@ in
       };
     };
 
-    services.filesWatcher.httpdProd.paths = [ "/var/secrets/apache-ldap" ];
-    services.filesWatcher.httpdInte.paths = [ "/var/secrets/apache-ldap" ];
-    services.filesWatcher.httpdTools.paths = [ "/var/secrets/apache-ldap" ];
+    services.filesWatcher.httpdProd.paths = [ config.secrets.fullPaths."apache-ldap" ];
+    services.filesWatcher.httpdInte.paths = [ config.secrets.fullPaths."apache-ldap" ];
+    services.filesWatcher.httpdTools.paths = [ config.secrets.fullPaths."apache-ldap" ];
 
     services.websites.env.production = {
       enable = true;
@@ -169,7 +173,7 @@ in
         let ips = config.myEnv.servers.eldiron.ips.integration;
         in [ips.ip4] ++ (ips.ip6 or []);
       modules = makeModules;
-      extraConfig = makeExtraConfig;
+      extraConfig = makeExtraConfig ++ moomin;
       fallbackVhost = {
         certName    = "eldiron";
         hosts       = ["eldiron.immae.eu" ];
@@ -208,11 +212,8 @@ in
       };
     };
 
-    services.websites.webappDirs = {
-      _www = ./_www;
-      _theme = pkgs.webapps.apache-theme.theme;
-    };
     myServices.websites = {
+      bakeer.cloud.enable = true;
       capitaines.landing_pages.enable = true;
 
       chloe = {
@@ -232,9 +233,16 @@ in
       denise = {
         evariste.enable = true;
         denisejerome.enable = true;
+        oms.enable = true;
+        bingo.enable = true;
+        aventuriers.enable = true;
+        production.enable = true;
       };
 
-      emilia.moodle.enable = true;
+      emilia = {
+        moodle.enable = false;
+        atelierfringant.enable = true;
+      };
 
       florian = {
         app.enable = true;
@@ -265,26 +273,37 @@ in
 
       nassime.production.enable = true;
 
-      nathanael.villon.enable = true;
+      nath.villon.enable = true;
 
       papa = {
         surveillance.enable = true;
         maison_bbc.enable = true;
       };
 
+      patrick_fodella = {
+        ecolyeu.enable = true;
+        altermondia.enable = true;
+      };
+
       piedsjaloux = {
         integration.enable = true;
         production.enable = true;
       };
 
+      ressourcerie_banon.production.enable = true;
+      ressourcerie_banon.cryptpad.enable = true;
+      ressourcerie_banon.cloud.enable = true;
+
       richie.production.enable = true;
 
       syden.peertube.enable = true;
 
       telio_tortay.production.enable = true;
 
+      tools.assets.enable = true;
       tools.cloud.enable = true;
       tools.commento.enable = true;
+      tools.cryptpad.enable = true;
       tools.dav.enable = true;
       tools.db.enable = true;
       tools.diaspora.enable = true;
@@ -293,10 +312,13 @@ in
       tools.mastodon.enable = true;
       tools.mediagoblin.enable = true;
       tools.peertube.enable = true;
+      tools.performance.enable = true;
       tools.tools.enable = true;
       tools.email.enable = true;
+      tools.stats.enable = false;
 
       games.codenames.enable = true;
+      games.terraforming-mars.enable = true;
     };
   };
 }