]> git.immae.eu Git - perso/Immae/Config/Nix.git/commitdiff
Remove webappdirs
authorIsmaël Bouya <ismael.bouya@normalesup.org>
Fri, 22 Oct 2021 18:07:14 +0000 (20:07 +0200)
committerIsmaël Bouya <ismael.bouya@normalesup.org>
Fri, 22 Oct 2021 23:43:33 +0000 (01:43 +0200)
47 files changed:
modules/private/tasks/default.nix
modules/private/websites/capitaines/landing_pages.nix
modules/private/websites/chloe/integration.nix
modules/private/websites/chloe/production.nix
modules/private/websites/commons/adminer.nix
modules/private/websites/connexionswing/integration.nix
modules/private/websites/connexionswing/production.nix
modules/private/websites/default.nix
modules/private/websites/emilia/moodle.nix
modules/private/websites/florian/app.nix
modules/private/websites/isabelle/aten_integration.nix
modules/private/websites/isabelle/aten_production.nix
modules/private/websites/isabelle/iridologie.nix
modules/private/websites/ludivine/integration.nix
modules/private/websites/ludivine/production.nix
modules/private/websites/papa/maison_bbc.nix
modules/private/websites/piedsjaloux/integration.nix
modules/private/websites/piedsjaloux/production.nix
modules/private/websites/richie/production.nix
modules/private/websites/tools/cloud/default.nix
modules/private/websites/tools/dav/davical.nix
modules/private/websites/tools/dav/default.nix
modules/private/websites/tools/diaspora/default.nix
modules/private/websites/tools/git/default.nix
modules/private/websites/tools/git/gitweb.nix
modules/private/websites/tools/git/mantisbt.nix
modules/private/websites/tools/mail/default.nix
modules/private/websites/tools/mail/mta-sts.nix
modules/private/websites/tools/mail/rainloop.nix
modules/private/websites/tools/mail/roundcubemail.nix
modules/private/websites/tools/mastodon/default.nix
modules/private/websites/tools/tools/adminer.nix
modules/private/websites/tools/tools/default.nix
modules/private/websites/tools/tools/dmarc_reports.nix
modules/private/websites/tools/tools/dokuwiki.nix
modules/private/websites/tools/tools/grocy.nix
modules/private/websites/tools/tools/kanboard.nix
modules/private/websites/tools/tools/ldap.nix
modules/private/websites/tools/tools/phpbb.nix
modules/private/websites/tools/tools/rompr.nix
modules/private/websites/tools/tools/shaarli.nix
modules/private/websites/tools/tools/ttrss.nix
modules/private/websites/tools/tools/wallabag.nix
modules/private/websites/tools/tools/yourls.nix
modules/private/websites/tools/vpn/default.nix
modules/websites/default.nix
modules/websites/php-application.nix

index ac2aa2184074baf8f76f60e52820da7076241c9b..26112dd01f81c16f579f356a30eb66ae91df6321 100644 (file)
@@ -165,9 +165,9 @@ in {
       certName    = "eldiron";
       addToCerts  = true;
       hosts       = [ "task.immae.eu" ];
-      root        = "/run/current-system/webapps/_task";
+      root        = ./www;
       extraConfig = [ ''
-        <Directory /run/current-system/webapps/_task>
+        <Directory ${./www}>
           DirectoryIndex index.php
           Use LDAPConnect
           Require ldap-group cn=users,cn=taskwarrior,ou=services,dc=immae,dc=eu
@@ -243,8 +243,6 @@ in {
       };
     };
 
-    services.websites.webappDirs._task = ./www;
-
     security.acme.certs."task" = config.myServices.certificates.certConfig // {
       inherit user group;
       domain = fqdn;
index b94a39805163eb03edcad06a491ea33925dae454..edba8b90ba7162224bd96f587d425f51f6520d6d 100644 (file)
@@ -1,23 +1,21 @@
 { lib, config,  ... }:
 let
   cfg = config.myServices.websites.capitaines.landing_pages;
-  webappdirs = config.services.websites.webappDirsPaths;
   certName = "capitaines";
   domain = "capitaines.fr";
 in {
   options.myServices.websites.capitaines.landing_pages.enable = lib.mkEnableOption "enable Capitaines's landing pages";
 
   config = lib.mkIf cfg.enable {
-    services.websites.webappDirs.capitaines_mastodon = ./mastodon_static;
     services.websites.env.production.vhostConfs.capitaines_mastodon = rec {
       inherit certName;
       certMainHost = "mastodon.${domain}";
       hosts        = [ certMainHost ];
-      root         = webappdirs.capitaines_mastodon;
+      root         = ./mastodon_static;
       extraConfig  = [
         ''
         ErrorDocument 404 /index.html
-        <Directory ${webappdirs.capitaines_mastodon}>
+        <Directory ${./mastodon_static}>
           DirectoryIndex index.html
           Options Indexes FollowSymLinks MultiViews Includes
           Require all granted
@@ -26,16 +24,15 @@ in {
       ];
     };
 
-    services.websites.webappDirs.capitaines_discourse = ./discourse_static;
     services.websites.env.production.vhostConfs.capitaines_discourse = {
       inherit certName;
       addToCerts   = true;
       hosts        = [ "discourse.${domain}" ];
-      root         = webappdirs.capitaines_discourse;
+      root         = ./discourse_static;
       extraConfig  = [
         ''
         ErrorDocument 404 /index.html
-        <Directory ${webappdirs.capitaines_discourse}>
+        <Directory ${./discourse_static}>
           DirectoryIndex index.html
           Options Indexes FollowSymLinks MultiViews Includes
           Require all granted
@@ -48,9 +45,9 @@ in {
       inherit certName;
       addToCerts = true;
       hosts      = [ domain ];
-      root       = webappdirs._www;
+      root       = ../_www;
       extraConfig = [ ''
-        <Directory ${webappdirs._www}>
+        <Directory ${../_www}>
           DirectoryIndex index.htm
           Require all granted
         </Directory>
index c4b79f87b737e8ef2db1f9251a8a169bf0d7ee10..7ed385255baa958ad1a202e7e26e9ce1aef265ff 100644 (file)
@@ -9,7 +9,6 @@ let
     varDir = "/var/lib/chloe_integration";
   };
   cfg = config.myServices.websites.chloe.integration;
-  webappdir = config.services.websites.webappDirsPaths.chloe_integration;
 in {
   options.myServices.websites.chloe.integration.enable = lib.mkEnableOption "enable Chloe's website in integration";
 
@@ -61,13 +60,12 @@ in {
         install -m 0750 -o ${apacheUser} -g ${apacheGroup} -d ${app.varDir}/phpSessions
       '';
     };
-    services.websites.webappDirs.chloe_integration = app.webRoot;
     services.websites.env.integration.modules = [ "proxy_fcgi" ];
     services.websites.env.integration.vhostConfs.chloe_integration = {
       certName    = "integration";
       addToCerts  = true;
       hosts       = ["chloe.immae.eu" ];
-      root        = webappdir;
+      root        = app.webRoot;
       extraConfig = [
       ''
         Include ${config.secrets.fullPaths."websites/chloe/integration"}
@@ -78,16 +76,16 @@ in {
           SetHandler "proxy:unix:${config.services.phpfpm.pools.chloe_integration.socket}|fcgi://localhost"
         </FilesMatch>
 
-        <Directory ${webappdir}>
+        <Directory ${app.webRoot}>
           DirectoryIndex index.php index.htm index.html
           Options -Indexes +FollowSymLinks +MultiViews +Includes
-          Include ${webappdir}/htaccess.txt
+          Include ${app.webRoot}/htaccess.txt
 
           AllowOverride AuthConfig FileInfo Limit
           Require all granted
         </Directory>
 
-        <DirectoryMatch "${webappdir}/squelettes">
+        <DirectoryMatch "${app.webRoot}/squelettes">
           Require all denied
         </DirectoryMatch>
 
index 92ae05be304f972ec1c932315c7e6581417d3ae7..c3a5732cd8d9f45013c1aa397614ba609d9423c9 100644 (file)
@@ -9,7 +9,6 @@ let
     varDir = "/var/lib/chloe_production";
   };
   cfg = config.myServices.websites.chloe.production;
-  webappdir = config.services.websites.webappDirsPaths.chloe_production;
 in {
   options.myServices.websites.chloe.production.enable = lib.mkEnableOption "enable Chloe's website in production";
 
@@ -66,13 +65,12 @@ in {
         install -m 0750 -o ${apacheUser} -g ${apacheGroup} -d ${app.varDir}/phpSessions
       '';
     };
-    services.websites.webappDirs.chloe_production = app.webRoot;
     services.websites.env.production.modules = [ "proxy_fcgi" ];
     services.websites.env.production.vhostConfs.chloe = {
       certName     = "chloe";
       certMainHost = "osteopathe-cc.fr";
       hosts        = ["osteopathe-cc.fr" "www.osteopathe-cc.fr" ];
-      root         = webappdir;
+      root         = app.webRoot;
       extraConfig  = [
         ''
           Use Stats osteopathe-cc.fr
@@ -90,16 +88,16 @@ in {
             SetHandler "proxy:unix:${config.services.phpfpm.pools.chloe_production.socket}|fcgi://localhost"
           </FilesMatch>
 
-          <Directory ${webappdir}>
+          <Directory ${app.webRoot}>
             DirectoryIndex index.php index.htm index.html
             Options -Indexes +FollowSymLinks +MultiViews +Includes
-            Include ${webappdir}/htaccess.txt
+            Include ${app.webRoot}/htaccess.txt
 
             AllowOverride AuthConfig FileInfo Limit
             Require all granted
           </Directory>
 
-          <DirectoryMatch "${webappdir}/squelettes">
+          <DirectoryMatch "${app.webRoot}/squelettes">
             Require all denied
           </DirectoryMatch>
 
index 1803468e2d44d05419abf7be40ba43d80405de71..eae6a9a34fe0f183383476c811487d77f1cb5cc3 100644 (file)
@@ -1,5 +1,4 @@
 { config, callPackage }:
 callPackage ../tools/tools/adminer.nix {
-  adminer = null;
   forcePhpSocket = config.services.phpfpm.pools.adminer.socket;
 }
index 1b3587af5a896d4483743ba27c797cb6a075f8c2..93cda002b5b5099095a5f5ebc998f78097fff3e5 100644 (file)
@@ -74,7 +74,7 @@ in {
       certName    = "integration";
       addToCerts  = true;
       hosts       = ["connexionswing.immae.eu" "sandetludo.immae.eu" ];
-      root        = pcfg.webappDirs.connexionswing_integration;
+      root        = app.webRoot;
       extraConfig = [
         ''
         <FilesMatch "\.php$">
@@ -99,7 +99,7 @@ in {
           ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://connexionswing.com\"></html>"
         </Location>
 
-        <Directory ${pcfg.webappDirs.connexionswing_integration}>
+        <Directory ${app.webRoot}>
           Options Indexes FollowSymLinks MultiViews Includes
           AllowOverride None
           Require all granted
index 981e95e45312dbb3dc5143b753eea48288706442..144093aeef9719edd132e2bf074dffe43b1925a2 100644 (file)
@@ -79,7 +79,7 @@ in {
       certName     = "connexionswing";
       certMainHost = "connexionswing.com";
       hosts        = ["connexionswing.com" "sandetludo.com" "www.connexionswing.com" "www.sandetludo.com" ];
-      root         = pcfg.webappDirs.connexionswing_production;
+      root         = app.webRoot;
       extraConfig  = [
         ''
         <FilesMatch "\.php$">
@@ -100,7 +100,7 @@ in {
 
         Use Stats connexionswing.com
 
-        <Directory ${pcfg.webappDirs.connexionswing_production}>
+        <Directory ${app.webRoot}>
           Options Indexes FollowSymLinks MultiViews Includes
           AllowOverride All
           Require all granted
index e8193242b08e2c3980de7d0c026361051656b62a..08c9d7907602a2d0866d561c8d0f4968a8799c1a 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
@@ -216,10 +216,6 @@ in
       };
     };
 
-    services.websites.webappDirs = {
-      _www = ./_www;
-      _theme = pkgs.webapps.apache-theme.theme;
-    };
     myServices.websites = {
       bakeer.cloud.enable = true;
       capitaines.landing_pages.enable = true;
index d49faf5642b6874b6e22c288fbe74d157c617a08..f943502b8f835d29ddb2f0f23d709860db208c01 100644 (file)
@@ -4,8 +4,6 @@ let
   env = config.myEnv.websites.emilia;
   varDir = "/var/lib/emilia_moodle";
   siteDir = ./moodle;
-  webappName = "emilia_moodle";
-  webappdir = config.services.websites.webappDirsPaths.emilia_moodle;
   # php_admin_value[upload_max_filesize] = 50000000
   # php_admin_value[post_max_size] = 50000000
   configFile = ''
@@ -49,15 +47,14 @@ in {
     system.activationScripts.emilia_moodle = ''
       install -m 0755 -o ${apacheUser} -g ${apacheGroup} -d ${varDir}
       '';
-    services.websites.webappDirs.emilia_moodle = siteDir;
     services.websites.env.production.vhostConfs.emilia_moodle = {
       certName     = "emilia";
       certMainHost = "saison-photo.org";
       hosts        = [ "saison-photo.org" "www.saison-photo.org" ];
-      root         = webappdir;
+      root         = siteDir;
       extraConfig  = [
         ''
-        <Directory ${webappdir}>
+        <Directory ${siteDir}>
           DirectoryIndex pause.html
           Options Indexes FollowSymLinks MultiViews Includes
           Require all granted
index 87e622a66a6a861b349549a52c1d4f945db49894..5e6255cabcc262603e65ee0ef472b54a1dce4988 100644 (file)
@@ -81,7 +81,7 @@ in {
       certName    = "integration";
       addToCerts  = true;
       hosts       = [ "app.tellesflorian.com" ];
-      root        = pcfg.webappDirs.florian_app;
+      root        = app.webRoot;
       extraConfig = [
         ''
         <FilesMatch "\.php$">
@@ -99,7 +99,7 @@ in {
           ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://tellesflorian.com\"></html>"
         </Location>
 
-        <Directory ${pcfg.webappDirs.florian_app}>
+        <Directory ${app.webRoot}>
           Options Indexes FollowSymLinks MultiViews Includes
           AllowOverride None
           Require all granted
index 899ee66983aaa5c979c01904a52136d0e7b15a47..7e0aaf726eeeda00285fedc0c5574cc1e03c85a9 100644 (file)
@@ -60,7 +60,7 @@ in {
       certName    = "integration";
       addToCerts  = true;
       hosts       = [ "dev.aten.pro" ];
-      root        = pcfg.webappDirs.isabelle_aten_integration;
+      root        = app.webRoot;
       extraConfig = [
         ''
         <FilesMatch "\.php$">
@@ -81,7 +81,7 @@ in {
           ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://aten.pro\"></html>"
         </Location>
 
-        <Directory ${pcfg.webappDirs.isabelle_aten_integration}>
+        <Directory ${app.webRoot}>
           Options Indexes FollowSymLinks MultiViews Includes
           AllowOverride All
           Require all granted
index b8d12b94351f779597ab17fda7ca52b8bafa8f16..6a04710173c62db6a61a621f342ba28bf1c92188 100644 (file)
@@ -61,7 +61,7 @@ in {
       certName     = "isabelle";
       certMainHost = "aten.pro";
       hosts       = [ "aten.pro" "www.aten.pro" ];
-      root        = pcfg.webappDirs.isabelle_aten_production;
+      root        = app.webRoot;
       extraConfig = [
         ''
         <FilesMatch "\.php$">
@@ -78,7 +78,7 @@ in {
           ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://aten.pro\"></html>"
         </Location>
 
-        <Directory ${pcfg.webappDirs.isabelle_aten_production}>
+        <Directory ${app.webRoot}>
           Options Indexes FollowSymLinks MultiViews Includes
           AllowOverride All
           Require all granted
index decda3628acf5db087e27e9937c5421e206070c1..88521fc9647cda6948050b4605e5012e8b9bd9cc 100644 (file)
@@ -10,7 +10,6 @@ let
 
   apacheUser = config.services.httpd.Prod.user;
   apacheGroup = config.services.httpd.Prod.group;
-  webappdir = config.services.websites.webappDirsPaths.isabelle_iridologie;
   secretsPath = config.secrets.fullPaths."websites/isabelle/iridologie";
 in {
   options.myServices.websites.isabelle.iridologie.enable = lib.mkEnableOption "enable Iridologie's website";
@@ -68,13 +67,12 @@ in {
         install -m 0750 -o ${apacheUser} -g ${apacheGroup} -d ${app.varDir}/phpSessions
       '';
     };
-    services.websites.webappDirs.isabelle_iridologie = app.webRoot;
     services.websites.env.production.modules = [ "proxy_fcgi" ];
     services.websites.env.production.vhostConfs.isabelle_iridologie = {
       certName     = "isabelle";
       addToCerts   = true;
       hosts        = [ "iridologie.icommandeur.org" "icommandeur.org" "www.icommandeur.org" ];
-      root         = webappdir;
+      root         = app.webRoot;
       extraConfig  = [
         ''
           RewriteEngine On
@@ -89,16 +87,16 @@ in {
             SetHandler "proxy:unix:${config.services.phpfpm.pools.isabelle_iridologie.socket}|fcgi://localhost"
           </FilesMatch>
 
-          <Directory ${webappdir}>
+          <Directory ${app.webRoot}>
             DirectoryIndex index.php index.htm index.html
             Options -Indexes +FollowSymLinks +MultiViews +Includes
-            Include ${webappdir}/htaccess.txt
+            Include ${app.webRoot}/htaccess.txt
 
             AllowOverride AuthConfig FileInfo Limit
             Require all granted
           </Directory>
 
-          <DirectoryMatch "${webappdir}/squelettes">
+          <DirectoryMatch "${app.webRoot}/squelettes">
             Require all denied
           </DirectoryMatch>
 
index cfef3857527cc98b3d7f81ecebf53353c61e5a3b..99c9acf187e1980d9ea78c09617bf124af1d9321 100644 (file)
@@ -90,7 +90,7 @@ in {
       certName    = "integration";
       addToCerts  = true;
       hosts       = [ "ludivine.immae.eu" ];
-      root        = pcfg.webappDirs.ludivine_integration;
+      root        = app.webRoot;
       extraConfig = [
         ''
         <FilesMatch "\.php$">
@@ -103,7 +103,7 @@ in {
           ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://ludivinecassal.com\"></html>"
         </Location>
 
-        <Directory ${pcfg.webappDirs.ludivine_integration}>
+        <Directory ${app.webRoot}>
           Options Indexes FollowSymLinks MultiViews Includes
           AllowOverride None
           Require all granted
index 73b63a2d98564d60d68cb61340fab03793ac6a49..09bb3dc2b40967cb53e8e3f35469723ca4f6d473 100644 (file)
@@ -93,7 +93,7 @@ in {
       certName     = "ludivine";
       certMainHost = "ludivinecassal.com";
       hosts        = ["ludivinecassal.com" "www.ludivinecassal.com" ];
-      root         = pcfg.webappDirs.ludivine_production;
+      root         = app.webRoot;
       extraConfig  = [
         ''
         RewriteEngine on
@@ -106,7 +106,7 @@ in {
 
         Use Stats ludivinecassal.com
 
-        <Directory ${pcfg.webappDirs.ludivine_production}>
+        <Directory ${app.webRoot}>
           Options Indexes FollowSymLinks MultiViews Includes
           AllowOverride All
           Require all granted
index 528c83209bb94df0df82729bb1f086202fceb792..3eb736ee1b80b515f77a213a7ff7aa3aa70c726f 100644 (file)
@@ -1,23 +1,21 @@
 { lib, config, ... }:
 let
   cfg = config.myServices.websites.papa.maison_bbc;
-  webappdirs = config.services.websites.webappDirsPaths;
 in {
   options.myServices.websites.papa.maison_bbc.enable = lib.mkEnableOption "enable Papa Maison bbc website";
 
   config = lib.mkIf cfg.enable {
     services.webstats.sites = [ { name = "maison.bbc.bouya.org"; } ];
 
-    services.websites.webappDirs.papa_maison_bbc = ./maison_bbc_static;
     services.websites.env.production.vhostConfs.papa_maison_bbc = {
       certName     = "papa";
       addToCerts   = true;
       hosts        = [ "maison.bbc.bouya.org" ];
-      root         = webappdirs.papa_maison_bbc;
+      root         = ./maison_bbc_static;
       extraConfig  = [
         ''
         ErrorDocument 404 /index.html
-        <Directory ${webappdirs.papa_maison_bbc}>
+        <Directory ${./maison_bbc_static}>
           DirectoryIndex index.htm index.html
           AllowOverride None
           Require all granted
index f501eba16199faa563bbd5d68cc4b2a36f962cba..437b127133235e6b92c5f77c862cb82a15a2f3d8 100644 (file)
@@ -80,7 +80,7 @@ in {
       certName     = "integration";
       addToCerts  = true;
       hosts       = [ "piedsjaloux.immae.eu" ];
-      root        = pcfg.webappDirs.piedsjaloux_integration;
+      root        = app.webRoot;
       extraConfig = [
         ''
         <FilesMatch "\.php$">
@@ -93,7 +93,7 @@ in {
           ErrorDocument 401 "<html><meta http-equiv=\"refresh\" content=\"0;url=https://piedsjaloux.fr\"></html>"
         </Location>
 
-        <Directory ${pcfg.webappDirs.piedsjaloux_integration}>
+        <Directory ${app.webRoot}>
           Options Indexes FollowSymLinks MultiViews Includes
           AllowOverride None
           Require all granted
index fed5a0fb40fd76701476c371a096f292857cdb2a..118846d679f3874734cb21e8f4657ef304f648ac 100644 (file)
@@ -83,7 +83,7 @@ in {
       certName     = "piedsjaloux";
       certMainHost = "piedsjaloux.fr";
       hosts        = [ "piedsjaloux.fr" "www.piedsjaloux.fr" ];
-      root         = pcfg.webappDirs.piedsjaloux_production;
+      root         = app.webRoot;
       extraConfig  = [
         ''
         RewriteEngine on
@@ -96,7 +96,7 @@ in {
 
         Use Stats piedsjaloux.fr
 
-        <Directory ${pcfg.webappDirs.piedsjaloux_production}>
+        <Directory ${app.webRoot}>
           Options Indexes FollowSymLinks MultiViews Includes
           AllowOverride All
           Require all granted
index 3efa9f05833eb11d941c7fa1dcce86b5ab936720..e95df300cf94db8a8b1faaca8a2afc49695a7ff7 100644 (file)
@@ -17,7 +17,6 @@ let
       sed -i "s@localedef --list-archive@localedef --list-archive /run/current-system/sw/lib/locale/locale-archive@" $out/admin/parametres.php
       '';
   };
-  webappdir = config.services.websites.webappDirsPaths.richie_production;
   secretPath = config.secrets.fullPaths."websites/richie/production";
   apacheUser = config.services.httpd.Prod.user;
   apacheGroup = config.services.httpd.Prod.group;
@@ -48,7 +47,6 @@ in
         ?>
         '';
     };
-    services.websites.webappDirs.richie_production = richieSrc;
     system.activationScripts.richie_production = {
       deps = [ "httpd" ];
       text = ''
@@ -85,7 +83,7 @@ in
       addToCerts  = true;
       certMainHost = "europe-richie.org";
       hosts       = [ "europe-richie.org" "www.europe-richie.org" ];
-      root        = webappdir;
+      root        = richieSrc;
       extraConfig = [
         ''
         Use Stats europe-richie.org
@@ -93,7 +91,7 @@ in
         <LocationMatch "^/files/.*/admin/">
           Require all denied
         </LocationMatch>
-        <Directory ${webappdir}>
+        <Directory ${richieSrc}>
           DirectoryIndex index.php index.htm index.html
           Options Indexes FollowSymLinks MultiViews Includes
           AllowOverride None
index fc0aae62f88d7b4597dbaa605ec16bc18914b5e4..44163de71d80d0fb1e9524513acf2442709acbaa 100644 (file)
@@ -8,8 +8,6 @@ let
   ]);
   env = config.myEnv.tools.nextcloud;
   varDir = "/var/lib/nextcloud";
-  webappName = "tools_nextcloud";
-  apacheRoot = "/run/current-system/webapps/${webappName}";
   cfg = config.myServices.websites.tools.cloud;
   phpFpm = rec {
     basedir = builtins.concatStringsSep ":" ([ nextcloud varDir ] ++ nextcloud.apps);
@@ -49,11 +47,11 @@ in {
       certName    = "eldiron";
       addToCerts  = true;
       hosts       = ["cloud.immae.eu" ];
-      root        = apacheRoot;
+      root        = nextcloud;
       extraConfig = [
         ''
           SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
-          <Directory ${apacheRoot}>
+          <Directory ${nextcloud}>
             AcceptPathInfo On
             DirectoryIndex index.php
             Options FollowSymlinks
@@ -159,11 +157,6 @@ in {
         #install -D -m 0600 -o wwwrun -g wwwrun -T ${config.secrets.fullPaths."webapps/tools-nextcloud"} ${varDir}/config/config.php
       '';
     };
-    # FIXME: add a warning when config.php changes
-    system.extraSystemBuilderCmds = ''
-      mkdir -p $out/webapps
-      ln -s ${nextcloud} $out/webapps/${webappName}
-      '';
 
     services.phpfpm.pools.nextcloud = {
       user = "wwwrun";
index 9e4056a235b7403a861808717b1273faab11b410..bc5ecf695bf5aed35d303ce199d5d0503f70c71e 100644 (file)
@@ -70,8 +70,7 @@ rec {
     user = "wwwrun";
     group = "wwwrun";
     modules = [ "proxy_fcgi" ];
-    webappName = "tools_davical";
-    root = "/run/current-system/webapps/${webappName}";
+    root = webRoot;
     vhostConf = socket: ''
       Alias /davical "${root}"
       Alias /caldav.php  "${root}/caldav.php"
index c54e1524dc59ae2c0eed1b1f203d4e02d6fe76a7..b3aa03deb7336c697c028b5bfdfcab704286826a 100644 (file)
@@ -1,8 +1,7 @@
 { lib, pkgs, config,  ... }:
 let
     infcloud = rec {
-      webappName = "tools_infcloud";
-      root = "/run/current-system/webapps/${webappName}";
+      root = pkgs.webapps.infcloud;
       vhostConf = ''
           Alias /carddavmate ${root}
           Alias /caldavzap ${root}
@@ -36,7 +35,7 @@ in {
       certName    = "eldiron";
       addToCerts  = true;
       hosts       = ["dav.immae.eu" ];
-      root        = "/run/current-system/webapps/_dav";
+      root        = ./www;
       extraConfig = [
         infcloud.vhostConf
         (davical.apache.vhostConf config.services.phpfpm.pools.davical.socket)
@@ -51,10 +50,6 @@ in {
         phpPackage = pkgs.php72;
       };
     };
-
-    services.websites.webappDirs._dav = ./www;
-    services.websites.webappDirs."${davical.apache.webappName}" = davical.webRoot;
-    services.websites.webappDirs."${infcloud.webappName}" = pkgs.webapps.infcloud;
   };
 }
 
index 9119ead35e31e3e9a683c7f9dc1f09661f2479a4..9afd5b99ff83c473d4f3e1a2f944834e29fe44c0 100644 (file)
@@ -1,7 +1,7 @@
 { lib, pkgs, config,  ... }:
 let
   env = config.myEnv.tools.diaspora;
-  root = "/run/current-system/webapps/tools_diaspora";
+  root = "${dcfg.workdir}/public/";
   cfg = config.myServices.websites.tools.diaspora;
   dcfg = config.services.diaspora;
 in {
@@ -160,10 +160,6 @@ in {
     services.websites.env.tools.modules = [
       "headers" "proxy" "proxy_http"
     ];
-    system.extraSystemBuilderCmds = ''
-      mkdir -p $out/webapps
-      ln -s ${dcfg.workdir}/public/ $out/webapps/tools_diaspora
-      '';
     services.websites.env.tools.vhostConfs.diaspora = {
       certName    = "eldiron";
       addToCerts  = true;
index 755bab005bbf8a1539094192fb94212821230297..8f611ee85fb40157c2a5ac988a8c0a53940a6bf8 100644 (file)
@@ -20,8 +20,6 @@ in {
     services.websites.env.tools.modules =
       gitweb.apache.modules ++
       mantisbt.apache.modules;
-    services.websites.webappDirs."${gitweb.apache.webappName}" = gitweb.webRoot;
-    services.websites.webappDirs."${mantisbt.apache.webappName}" = mantisbt.webRoot;
 
     system.activationScripts.mantisbt = mantisbt.activationScript;
     services.websites.env.tools.vhostConfs.git = {
index dab0c9eaf1f6f677ece4d394c3eec9190fd4cf23..ff34da51f8e577afba64acb8089e897f5b50d619 100644 (file)
@@ -1,7 +1,6 @@
 { gitweb, writeText, stdenv, coreutils, writeScript, gitolite, git, cgit, gitoliteDir, mailcap, highlight }:
 rec {
   varDir = gitoliteDir;
-  webRoot = gitweb;
   config = writeText "gitweb.conf" ''
     $git_temp = "/tmp";
 
@@ -77,8 +76,7 @@ rec {
     user = "wwwrun";
     group = "wwwrun";
     modules = [ "cgid" ];
-    webappName = "tools_gitweb";
-    root = "/run/current-system/webapps/${webappName}";
+    root = gitweb;
     vhostConf = ''
       SetEnv GIT_PROJECT_ROOT ${varDir}/repositories/
       ScriptAliasMatch \
index 033a651b205264c12ce61f198a6ebdd533c853e0..2ef76afe0637a4edd1b5c4ce48cae2fbf615fe64 100644 (file)
@@ -50,8 +50,7 @@ rec {
     user = "wwwrun";
     group = "wwwrun";
     modules = [ "proxy_fcgi" ];
-    webappName = "tools_mantisbt";
-    root = "/run/current-system/webapps/${webappName}";
+    root = webRoot;
     vhostConf = socket: ''
       Alias /mantisbt "${root}"
       <Directory "${root}">
index 033a58724e9b101eb6c85b77a528924ec64111c8..7bc3d2ded3b1cac1d41c16dcce4304401e6e8ffc 100644 (file)
@@ -36,12 +36,12 @@ in
       certName   = "mail";
       addToCerts = true;
       hosts      = ["mail.immae.eu"];
-      root       = "/run/current-system/webapps/_mail";
+      root       = ./www;
       extraConfig = [
         (rainloop.apache.vhostConf pcfg.rainloop.socket)
         (roundcubemail.apache.vhostConf pcfg.roundcubemail.socket)
         ''
-          <Directory /run/current-system/webapps/_mail>
+          <Directory ${./www}>
             Require all granted
             Options -Indexes
           </Directory>
@@ -78,13 +78,6 @@ in
       roundcubemail = roundcubemail.activationScript;
       rainloop = rainloop.activationScript;
     };
-
-    services.websites.webappDirs = {
-      _mail = ./www;
-      "${roundcubemail.apache.webappName}" = roundcubemail.webRoot;
-      "${rainloop.apache.webappName}" = rainloop.webRoot;
-    };
-
   };
 
 }
index c5f71f03b616de1aec47333751a9799ffffeb350..77ba2d4ff653404e1209b7fcec09d8af6eaf21d4 100644 (file)
@@ -33,21 +33,17 @@ let
 in
 {
   config = lib.mkIf cfg.enable {
-    services.websites.webappDirs = {
-      _mta-sts = root;
-    };
-
     services.websites.env.tools.vhostConfs.mta_sts = {
       certName   = "mail";
       addToCerts = true;
       hosts = ["mta-sts.mail.immae.eu"] ++ map (v: "mta-sts.${v.domain}") domains;
-      root = "/run/current-system/webapps/_mta-sts";
+      root = root;
       extraConfig = [
         ''
           RewriteEngine on
           RewriteCond %{HTTP_HOST} ^mta-sts.(.*)$
           RewriteRule ^/.well-known/mta-sts.txt$ %{DOCUMENT_ROOT}/%1.txt [L]
-          <Directory /run/current-system/webapps/_mta-sts>
+          <Directory ${root}>
             Require all granted
             Options -Indexes
           </Directory>
index 21de5eb5bd8a82d2ef3462816e5b080840992783..20e43a17b3286770173abb71f7a9f358bb3fe117 100644 (file)
@@ -14,8 +14,7 @@ rec {
     user = "wwwrun";
     group = "wwwrun";
     modules = [ "proxy_fcgi" ];
-    webappName = "tools_rainloop";
-    root = "/run/current-system/webapps/${webappName}";
+    root = webRoot;
     vhostConf = socket: ''
     Alias /rainloop "${root}"
     <Directory "${root}">
index 92de28ee5a28bc99e907b38ca4ac85533adcc716..2661b5565f1ca62ad003aec9ff87cb02e8975f36 100644 (file)
@@ -79,8 +79,7 @@ rec {
     user = "wwwrun";
     group = "wwwrun";
     modules = [ "proxy_fcgi" ];
-    webappName = "tools_roundcubemail";
-    root = "/run/current-system/webapps/${webappName}";
+    root = webRoot;
     vhostConf = socket: ''
     Alias /roundcube "${root}"
     <Directory "${root}">
index 87e8d726aa90ebd8ab7d4ff408c73376b05c4945..3512cf177471048cf6a3a6cb8f4e27b60907aa18 100644 (file)
@@ -1,7 +1,7 @@
 { lib, pkgs, config,  ... }:
 let
   env = config.myEnv.tools.mastodon;
-  root = "/run/current-system/webapps/tools_mastodon";
+  root = "${mcfg.workdir}/public/";
   cfg = config.myServices.websites.tools.mastodon;
   mcfg = config.services.mastodon;
 in {
@@ -82,10 +82,6 @@ in {
     services.websites.env.tools.modules = [
       "headers" "proxy" "proxy_wstunnel" "proxy_http"
     ];
-    system.extraSystemBuilderCmds = ''
-      mkdir -p $out/webapps
-      ln -s ${mcfg.workdir}/public/ $out/webapps/tools_mastodon
-      '';
     services.websites.env.tools.vhostConfs.mastodon = {
       certName    = "eldiron";
       addToCerts  = true;
index a4ba344a7532377e6639b139388383197d9a3b7a..c280684c2f9fcd919508f238ac3a3c85a442bb24 100644 (file)
@@ -1,4 +1,4 @@
-{ adminer, php74, myPhpPackages, lib, forcePhpSocket ? null }:
+{ webapps, php74, myPhpPackages, lib, forcePhpSocket ? null }:
 rec {
   activationScript = {
     deps = [ "httpd" ];
@@ -6,7 +6,7 @@ rec {
       install -m 0755 -o ${apache.user} -g ${apache.group} -d /var/lib/php/sessions/adminer
       '';
   };
-  webRoot = adminer;
+  webRoot = webapps.adminer;
   phpFpm = rec {
     user = apache.user;
     group = apache.group;
@@ -28,11 +28,10 @@ rec {
     user = "wwwrun";
     group = "wwwrun";
     modules = [ "proxy_fcgi" ];
-    webappName = "_adminer";
-    root = "/run/current-system/webapps/${webappName}";
+    root = webRoot;
     vhostConf = socket: ''
-      Alias /adminer ${root}
-      <Directory ${root}>
+      Alias /adminer ${webRoot}
+      <Directory ${webRoot}>
         DirectoryIndex index.php
         <FilesMatch "\.php$">
           SetHandler "proxy:unix:${if forcePhpSocket != null then forcePhpSocket else socket}|fcgi://localhost"
index 1f499fbb76abd2b9e2cb08e615bbd258b7d31f99..499ef9134015de00f4b3242a42938a258355884e 100644 (file)
@@ -2,9 +2,7 @@
 let
   flakeCompat = import ../../../../../lib/flake-compat.nix;
 
-  adminer = pkgs.callPackage ./adminer.nix {
-    inherit (pkgs.webapps) adminer;
-  };
+  adminer = pkgs.callPackage ./adminer.nix {};
   ympd = pkgs.callPackage ./ympd.nix {
     env = config.myEnv.tools.ympd;
   };
@@ -429,21 +427,6 @@ in {
       ldap = ldap.activationScript;
     };
 
-    services.websites.webappDirs = {
-      _adminer = adminer.webRoot;
-      "${dmarc-reports.apache.webappName}" = dmarc-reports.webRoot;
-      "${dokuwiki.apache.webappName}" = dokuwiki.webRoot;
-      "${phpbb.apache.webappName}" = phpbb.webRoot;
-      "${ldap.apache.webappName}" = "${ldap.webRoot}/htdocs";
-      "${rompr.apache.webappName}" = rompr.webRoot;
-      "${shaarli.apache.webappName}" = shaarli.webRoot;
-      "${ttrss.apache.webappName}" = ttrss.webRoot;
-      "${wallabag.apache.webappName}" = wallabag.webRoot;
-      "${yourls.apache.webappName}" = yourls.webRoot;
-      "${kanboard.apache.webappName}" = kanboard.webRoot;
-      "${grocy.apache.webappName}" = grocy.webRoot;
-    };
-
     services.websites.env.tools.watchPaths = [
       config.secrets.fullPaths."webapps/tools-shaarli"
     ];
index 89da246167944a5cc842380bbc8935fdbdac7e33..8a77b1333e7cc0231f4e5750ebf92c1d67575ae2 100644 (file)
@@ -20,8 +20,7 @@ rec {
     user = "wwwrun";
     group = "wwwrun";
     modules = [ "proxy_fcgi" ];
-    webappName = "tools_dmarc_reports";
-    root = "/run/current-system/webapps/${webappName}";
+    root = webRoot;
     vhostConf = socket: ''
       Alias /dmarc-reports "${root}"
       <Directory "${root}">
index 6175a68e7e503b5323895c3d7f739d7a29008008..1bcd852511d3ef1d41e774a85d9fc76ebf9145e1 100644 (file)
@@ -25,8 +25,7 @@ rec {
     user = "wwwrun";
     group = "wwwrun";
     modules = [ "proxy_fcgi" ];
-    webappName = "tools_dokuwiki";
-    root = "/run/current-system/webapps/${webappName}";
+    root = webRoot;
     vhostConf = socket: ''
       Alias /dokuwiki "${root}"
       <Directory "${root}">
index a98d8acf5d3397a0ea917b21703fd22b81ca5344..3c33170a4c8200b5c746ecb4faeaed8caa40945f 100644 (file)
@@ -16,8 +16,7 @@ rec {
     user = "wwwrun";
     group = "wwwrun";
     modules = [ "proxy_fcgi" ];
-    webappName = "tools_grocy";
-    root = "/run/current-system/webapps/${webappName}";
+    root = webRoot;
     vhostConf = socket: ''
       Alias /grocy "${root}"
       <Directory "${root}">
index b2e7b658406c822e2b9e098f07c228c345e5db5f..54bbe017738ec275da3dbbb4bcf8551a396ba134 100644 (file)
@@ -46,8 +46,7 @@ rec {
     user = "wwwrun";
     group = "wwwrun";
     modules = [ "proxy_fcgi" ];
-    webappName = "tools_kanboard";
-    root = "/run/current-system/webapps/${webappName}";
+    root = webRoot;
     vhostConf = socket: ''
     Alias /kanboard "${root}"
     <Directory "${root}">
index 14920f4e32191d1835c690378cd7cadabdf900b1..2ca59f7a19c299808912d10818e03d63061e3254 100644 (file)
@@ -36,8 +36,7 @@ rec {
     user = "wwwrun";
     group = "wwwrun";
     modules = [ "proxy_fcgi" ];
-    webappName = "tools_ldap";
-    root = "/run/current-system/webapps/${webappName}";
+    root = "${webRoot}/htdocs";
     vhostConf = socket: ''
       Alias /ldap "${root}"
       <Directory "${root}">
index fa260692923b93651a7d44c56e547abe5c22a528..e341a647e2b7688e8820743b39e5f9ff03560a0c 100644 (file)
@@ -20,8 +20,7 @@ rec {
     user = "wwwrun";
     group = "wwwrun";
     modules = [ "proxy_fcgi" ];
-    webappName = "tools_phpbb";
-    root = "/run/current-system/webapps/${webappName}";
+    root = webRoot;
     vhostConf = socket: ''
       Alias /forum "${root}"
       <Directory "${root}">
index 106164cf702a0a873168d7f56985f051b41a04d9..9765df5b3e535a8e5e0a9c9ffe20006da052c460 100644 (file)
@@ -13,8 +13,7 @@ rec {
     user = "wwwrun";
     group = "wwwrun";
     modules = [ "headers" "mime" "proxy_fcgi" ];
-    webappName = "tools_rompr";
-    root = "/run/current-system/webapps/${webappName}";
+    root = webRoot;
     vhostConf = socket: ''
       Alias /rompr ${root}
 
index b7126cc018441d1f47291c7ff30988ec60d7e76f..f63c7220269e2053bfe0163e73cfb3f7fdcab39b 100644 (file)
@@ -16,8 +16,7 @@ in rec {
     user = "wwwrun";
     group = "wwwrun";
     modules =  [ "proxy_fcgi" "rewrite" "env" ];
-    webappName = "tools_shaarli";
-    root = "/run/current-system/webapps/${webappName}";
+    root = webRoot;
     vhostConf = socket: ''
       Alias /Shaarli "${root}"
 
index f6abae9afe7a260640dff110e51613746a529e94..bee26c8e92e7abcf9d552b573e86656d2e7a1167 100644 (file)
@@ -96,8 +96,7 @@ rec {
     user = "wwwrun";
     group = "wwwrun";
     modules = [ "proxy_fcgi" ];
-    webappName = "tools_ttrss";
-    root = "/run/current-system/webapps/${webappName}";
+    root = webRoot;
     vhostConf = socket: ''
       Alias /ttrss "${root}"
       <Directory "${root}">
index b6ad15136447823333b73e42bbc70555adcc588a..ceb061f96c7fcb112b3328bd6bb48d5c69b85419 100644 (file)
@@ -80,8 +80,7 @@ rec {
     user = "wwwrun";
     group = "wwwrun";
     modules = [ "proxy_fcgi" ];
-    webappName = "tools_wallabag";
-    root = "/run/current-system/webapps/${webappName}";
+    root = webRoot;
     vhostConf = socket: ''
       Alias /wallabag "${root}"
       <Directory "${root}">
index 01ef548d6a4e1ab5efba7389c146c01c2222d15f..3717520298adf5d10772d9198b910fecd2bbc3cf 100644 (file)
@@ -44,8 +44,7 @@ rec {
     user = "wwwrun";
     group = "wwwrun";
     modules = [ "proxy_fcgi" ];
-    webappName = "tools_yourls";
-    root = "/run/current-system/webapps/${webappName}";
+    root = webRoot;
     vhostConf = socket: ''
       Alias /url "${root}"
       <Directory "${root}">
index 4398a609f53fbb8d0ff0fcdb557f3ee9da825ddf..9cd499b41e1f08aea4e3cf9b91ae6af716dfda86 100644 (file)
@@ -7,9 +7,7 @@ in {
       certName    = "eldiron";
       addToCerts  = true;
       hosts       = [ "vpn.immae.eu" ];
-      root        = "/run/current-system/webapps/_vpn";
+      root        = ./www;
     };
-
-    services.websites.webappDirs._vpn = ./www;
   };
 }
index 0a78c134ae56211dd4bf82c20f7dd91e7a6c0b4f..6658c6624f4470aee16c4d40cac77437a68b0f5a 100644 (file)
@@ -7,22 +7,6 @@ in
     certs = mkOption {
       description = "Default websites configuration for certificates as accepted by acme";
     };
-    webappDirs = mkOption {
-      description = ''
-        Defines a symlink between /run/current-system/webapps and a store
-        app directory to be used in http configuration. Permits to avoid
-        restarting httpd when only the folder name changes.
-        '';
-      type = types.attrsOf types.path;
-      default = {};
-    };
-    webappDirsName = mkOption {
-      type = str;
-      default = "webapps";
-      description = ''
-        Name of the webapp dir to create in /run/current-system
-        '';
-    };
     env = mkOption {
       default = {};
       description = "Each type of website to enable will target a distinct httpd server";
@@ -145,17 +129,6 @@ in
         };
       });
     };
-    # Readonly variables
-    webappDirsPaths = mkOption {
-      type = attrsOf path;
-      readOnly = true;
-      description = ''
-        Full paths of the webapp dir
-        '';
-      default = attrsets.mapAttrs' (name: icfg: attrsets.nameValuePair
-        name "/run/current-system/${cfg.webappDirsName}/${name}"
-      ) cfg.webappDirs;
-    };
   };
 
   config.services.httpd = let
@@ -268,14 +241,6 @@ in
     }
   ) groupedCerts;
 
-  config.system.extraSystemBuilderCmds = lib.mkIf (builtins.length (builtins.attrValues cfg.webappDirs) > 0) ''
-    mkdir -p $out/${cfg.webappDirsName}
-    ${builtins.concatStringsSep "\n"
-      (attrsets.mapAttrsToList
-        (name: path: "ln -s ${path} $out/${cfg.webappDirsName}/${name}") cfg.webappDirs)
-    }
-  '';
-
   config.systemd.services = let
     package = httpdName: config.services.httpd.${httpdName}.package.out;
     cfgFile = httpdName: config.services.httpd.${httpdName}.configFile;
index 23e2b233581c3b92cc252360e220155f89fdb537..3a43a45e4bdd74e41dc59ca4322f8d3ac8297ee7 100644 (file)
@@ -110,13 +110,6 @@ in
               Path to application root
               '';
           };
-          webappName = mkOption {
-            type = nullOr str;
-            default = null;
-            description = ''
-              Alias name for the app, to be used in services.websites.webappDirs
-              '';
-          };
           webRoot = mkOption {
             type = nullOr path;
             description = ''
@@ -152,14 +145,6 @@ in
         Full paths to listen for php
         '';
     };
-    services.phpApplication.webappDirs = mkOption {
-      type = attrsOf path;
-      default = attrsets.filterAttrs (n: v: builtins.hasAttr n cfg.apps) config.services.websites.webappDirsPaths;
-      readOnly = true;
-      description = ''
-        Stable name webapp dirs for httpd
-        '';
-    };
   };
 
   config = {
@@ -186,10 +171,6 @@ in
       }
     ) cfg.apps;
 
-    services.websites.webappDirs = attrsets.mapAttrs' (name: icfg: attrsets.nameValuePair
-      (if icfg.webappName == null then name else icfg.webappName) icfg.webRoot
-    ) (attrsets.filterAttrs (n: v: !isNull v.webRoot) cfg.apps);
-
     services.filesWatcher = attrsets.mapAttrs' (name: icfg: attrsets.nameValuePair
       "phpfpm-${name}" {
         restart = true;