]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - modules/private/websites/tools/tools/default.nix
Migrate php sessions to redis
[perso/Immae/Config/Nix.git] / modules / private / websites / tools / tools / default.nix
index 99c746d7d6a4455a38e0534fee2857d294039bd5..fd31984c88d0bbdfb0e315616e4218bc095462cf 100644 (file)
@@ -365,6 +365,8 @@ in {
           "pm.min_spare_servers" = "1";
           "pm.max_spare_servers" = "10";
 
+          "php_admin_value[session.save_handler]" = "redis";
+          "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Tools:Tools:'";
           # Needed to avoid clashes in browser cookies (same domain)
           "php_value[session.name]" = "ToolsPHPSESSID";
           "php_admin_value[open_basedir]" = builtins.concatStringsSep ":" [
@@ -376,7 +378,7 @@ in {
         phpEnv = {
           CONTACT_EMAIL = config.myEnv.tools.contact;
         };
-        phpPackage = pkgs.php72;
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [ all.redis ]);
       };
       devtools = {
         user = "wwwrun";
@@ -390,92 +392,91 @@ in {
           "pm.min_spare_servers" = "1";
           "pm.max_spare_servers" = "10";
 
+          "php_admin_value[session.save_handler]" = "redis";
+          "php_admin_value[session.save_path]" = "'unix:///run/redis-php-sessions/redis.sock?persistent=1&prefix=Tools:Devtools:'";
           "php_admin_value[open_basedir]" = "/run/wrappers/bin/sendmail:/var/lib/ftp/immae/devtools:/tmp";
         };
-        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.mysqli all.redis all.apcu all.opcache ]);
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.mysqli all.sqlite3 all.redis all.apcu all.opcache ]);
       };
       adminer = adminer.phpFpm;
       ttrss = {
         user = "wwwrun";
         group = "wwwrun";
         settings = ttrss.phpFpm.pool;
-        phpPackage = pkgs.php72;
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
       };
       wallabag = {
         user = "wwwrun";
         group = "wwwrun";
         settings = wallabag.phpFpm.pool;
-        phpPackage = pkgs.php73.withExtensions({ enabled, all }: enabled ++ [all.tidy]);
+        phpPackage = pkgs.php73.withExtensions({ enabled, all }: enabled ++ [all.tidy all.redis]);
       };
       yourls = {
         user = "wwwrun";
         group = "wwwrun";
         settings = yourls.phpFpm.pool;
-        phpPackage = pkgs.php72;
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
       };
       rompr = {
         user = "wwwrun";
         group = "wwwrun";
         settings = rompr.phpFpm.pool;
-        phpPackage = pkgs.php72;
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
       };
       shaarli = {
         user = "wwwrun";
         group = "wwwrun";
         settings = shaarli.phpFpm.pool;
-        phpPackage = pkgs.php72;
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
       };
       dmarc-reports = {
         user = "wwwrun";
         group = "wwwrun";
         settings = dmarc-reports.phpFpm.pool;
         phpEnv = dmarc-reports.phpFpm.phpEnv;
-        phpPackage = pkgs.php72;
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
       };
       dokuwiki = {
         user = "wwwrun";
         group = "wwwrun";
         settings = dokuwiki.phpFpm.pool;
-        phpPackage = pkgs.php72;
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
       };
       phpbb = {
         user = "wwwrun";
         group = "wwwrun";
         settings = phpbb.phpFpm.pool;
-        phpPackage = pkgs.php72;
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
       };
       ldap = {
         user = "wwwrun";
         group = "wwwrun";
         settings = ldap.phpFpm.pool;
-        phpPackage = pkgs.php72;
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
       };
       kanboard = {
         user = "wwwrun";
         group = "wwwrun";
         settings = kanboard.phpFpm.pool;
-        phpPackage = pkgs.php72;
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
       };
       grocy = {
         user = "wwwrun";
         group = "wwwrun";
         settings = grocy.phpFpm.pool;
-        phpPackage = pkgs.php72;
+        phpPackage = pkgs.php72.withExtensions({ enabled, all }: enabled ++ [all.redis]);
       };
     };
 
     system.activationScripts = {
-      adminer = adminer.activationScript;
       grocy = grocy.activationScript;
       ttrss = ttrss.activationScript;
       wallabag = wallabag.activationScript;
-      yourls = yourls.activationScript;
       rompr = rompr.activationScript;
       shaarli = shaarli.activationScript;
       dokuwiki = dokuwiki.activationScript;
       phpbb = phpbb.activationScript;
       kanboard = kanboard.activationScript;
-      ldap = ldap.activationScript;
     };
 
     services.websites.env.tools.watchPaths = [