]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - modules/private/websites/default.nix
Ateliers du changement
[perso/Immae/Config/Nix.git] / modules / private / websites / default.nix
index 07ffc3e98fb431186150868512488733c5cded6e..2fdd18f8350b4524efe4ad8d1085bdab8d546680 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 = {
@@ -73,7 +73,7 @@ let
       '';
     };
     apaxy = {
-      extraConfig = (pkgs.webapps.apache-theme.override { inherit theme_root; }).apacheConfig;
+      extraConfig = (pkgs.webapps.apache-theme { inherit theme_root; }).apacheConfig;
     };
     http2 = {
       modules = [ "http2" ];
@@ -102,15 +102,31 @@ in
   options.myServices.websites.enable = lib.mkEnableOption "enable websites";
 
   config = lib.mkIf config.myServices.websites.enable {
-    services.duplyBackup.profiles.php = {
-      rootDir = "/var/lib/php";
-      remotes = [ "eriomem" "ovh" ];
+    myServices.chatonsProperties.hostings.web = {
+      file.datetime = "2022-08-22T01:30:00";
+      hosting = {
+        name = "Hébergement Web";
+        description = "Service d'hébergement web avec php/mysql/postgresql";
+        website = "https://www.immae.eu";
+        status.level = "OK";
+        status.description = "OK";
+        registration.load = "OPEN";
+        install.type = "PACKAGE";
+      };
+      software = {
+        name = "Apache Httpd";
+        website = "https://httpd.apache.org/";
+        license.url = "https://www.apache.org/licenses/";
+        license.name = "Apache License Version 2";
+        version = pkgs.apacheHttpd.version;
+        source.url = "https://httpd.apache.org/download.cgi";
+        modules = "openssh,pure-ftpd";
+      };
     };
     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";
@@ -126,7 +142,7 @@ in
           </IfModule>
         </Macro>
         '';
-    }];
+    };
 
     system.activationScripts = {
       httpd = ''
@@ -149,9 +165,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;
@@ -159,7 +175,7 @@ in
       httpdName = "Prod";
       ips =
         let ips = config.myEnv.servers.eldiron.ips.production;
-        in [ips.ip4] ++ (ips.ip6 or []);
+        in (ips.ip4 or []) ++ (ips.ip6 or []);
       modules = makeModules;
       extraConfig = makeExtraConfig;
       fallbackVhost = {
@@ -176,11 +192,11 @@ in
       httpdName = "Inte";
       ips =
         let ips = config.myEnv.servers.eldiron.ips.integration;
-        in [ips.ip4] ++ (ips.ip6 or []);
+        in (ips.ip4 or []) ++ (ips.ip6 or []);
       modules = makeModules;
       extraConfig = makeExtraConfig ++ moomin;
       fallbackVhost = {
-        certName    = "eldiron";
+        certName    = "integration";
         hosts       = ["eldiron.immae.eu" ];
         root        = www_root;
         extraConfig = [ "DirectoryIndex index.htm" ];
@@ -193,7 +209,7 @@ in
       httpdName = "Tools";
       ips =
         let ips = config.myEnv.servers.eldiron.ips.main;
-        in [ips.ip4] ++ (ips.ip6 or []);
+        in (ips.ip4 or []) ++ (ips.ip6 or []);
       modules = makeModules;
       extraConfig = makeExtraConfig ++
         [ ''
@@ -217,19 +233,26 @@ in
       };
     };
 
-    services.websites.webappDirs = {
-      _www = ./_www;
-      _theme = pkgs.webapps.apache-theme.theme;
-    };
+    myServices.tools.kanboard.farm.instances.tonnelle = {};
+    myServices.tools.kanboard.farm.instances.gebull = {};
     myServices.websites = {
+      attilax.dolibarr.enable = true;
+
       bakeer.cloud.enable = true;
       capitaines.landing_pages.enable = true;
 
       chloe = {
-        integration.enable = true;
+        new.enable = true;
         production.enable = true;
       };
 
+      christophe_carpentier = {
+        website.enable = true;
+        agorakit.enable = true;
+        agora-project.enable = true;
+        ateliersduchangement.enable = true;
+      };
+
       cip-ca = {
         sympa.enable = true;
       };
@@ -243,11 +266,15 @@ in
         evariste.enable = true;
         denisejerome.enable = true;
         oms.enable = true;
+        bingo.enable = true;
         aventuriers.enable = true;
         production.enable = true;
       };
 
-      emilia.moodle.enable = false;
+      emilia = {
+        moodle.enable = false;
+        atelierfringant.enable = false;
+      };
 
       florian = {
         app.enable = true;
@@ -259,6 +286,7 @@ in
         production.enable = true;
         release.enable = true;
         temp.enable = true;
+        dolibarr.enable = true;
       };
 
       isabelle = {
@@ -271,6 +299,13 @@ in
 
       leila.production.enable = true;
 
+      librezo = {
+        cloud.enable = true;
+        dolibarr.enable = true;
+        dolibarrDev.enable = true;
+        website.enable = true;
+      };
+
       ludivine = {
         integration.enable = true;
         production.enable = true;
@@ -278,14 +313,27 @@ in
 
       nassime.production.enable = true;
 
-      nath.villon.enable = true;
+      nicecoop = {
+        gestion-compte.enable = true;
+        gestion-compte-integration.enable = true;
+        odoo.enable = true;
+        dolibarrDev.enable = true;
+        copanier.enable = true;
+      };
+
+      noctambules = {
+        cloud.enable = true;
+      };
 
       papa = {
         surveillance.enable = true;
         maison_bbc.enable = true;
       };
 
-      patrick_fodella.production.enable = true;
+      patrick_fodella = {
+        ecolyeu.enable = false;
+        altermondia.enable = true;
+      };
 
       piedsjaloux = {
         integration.enable = true;
@@ -317,6 +365,8 @@ in
       tools.performance.enable = true;
       tools.tools.enable = true;
       tools.email.enable = true;
+      tools.stats.enable = false;
+      tools.visio.enable = true;
 
       games.codenames.enable = true;
       games.terraforming-mars.enable = true;