]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - nixops/modules/websites/tools/tools/yourls.nix
Cleanup php session directories
[perso/Immae/Config/Nix.git] / nixops / modules / websites / tools / tools / yourls.nix
index b12edfa3d5c44ea5fb913551e6006f14e304ecc2..390dabe081e82ccf8a9c45311d82ead0e3eb0782 100644 (file)
@@ -13,7 +13,12 @@ let
     activationScript = ''
       install -m 0755 -o ${apache.user} -g ${apache.group} -d /var/lib/php/sessions/yourls
     '';
-    config = writeText "config.php" ''
+    keys.tools-yourls = {
+      destDir = "/run/keys/webapps";
+      user = apache.user;
+      group = apache.group;
+      permissions = "0400";
+      text = ''
         <?php
         define( 'YOURLS_DB_USER', '${env.mysql.user}' );
         define( 'YOURLS_DB_PASS', '${env.mysql.password}' );
@@ -41,12 +46,13 @@ let
 
         define( 'LDAPAUTH_USERCACHE_TYPE', 0);
       '';
+    };
     webRoot = stdenv.mkDerivation (fetchedGithub ./yourls.json // rec {
       installPhase = ''
         mkdir -p $out
         cp -a */ *.php $out/
         cp sample-robots.txt $out/robots.txt
-        ln -sf ${config} $out/includes/config.php
+        ln -sf /run/keys/webapps/tools-yourls $out/includes/config.php
         ${builtins.concatStringsSep "\n" (
           lib.attrsets.mapAttrsToList (name: value: "ln -sf ${value} $out/user/plugins/${name}") plugins
         )}
@@ -79,8 +85,9 @@ let
         '';
     };
     phpFpm = rec {
+      serviceDeps = [ "mysql.service" "openldap.service" "tools-yourls-key.service" ];
       basedir = builtins.concatStringsSep ":" (
-        [ webRoot config ]
+        [ webRoot "/run/keys/webapps/tools-yourls" ]
         ++ lib.attrsets.mapAttrsToList (name: value: value) plugins);
       socket = "/var/run/phpfpm/yourls.sock";
       pool = ''
@@ -95,7 +102,7 @@ let
 
         ; Needed to avoid clashes in browser cookies (same domain)
         php_value[session.name] = YourlsPHPSESSID
-        php_admin_value[open_basedir] = "${basedir}:/tmp"
+        php_admin_value[open_basedir] = "${basedir}:/tmp:/var/lib/php/sessions/yourls"
         php_admin_value[session.save_path] = "/var/lib/php/sessions/yourls"
         '';
     };