]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - nixops/modules/websites/tools/tools/shaarli.nix
Move shaarli passwords to secure location
[perso/Immae/Config/Nix.git] / nixops / modules / websites / tools / tools / shaarli.nix
index 9f3779f56e68c2aaa5e76601adf138f37146e401..157c4de661ac2cac58c4e1c8eca757f393426e2c 100644 (file)
@@ -17,7 +17,7 @@ let
 
     installPhase = ''
       rm -r {cache,pagecache,tmp,data}/
-      ln -sf ../../../..${varDir}/{cache,pagecache,tmp,data} .
+      ln -sf ${varDir}/{cache,pagecache,tmp,data} .
       mkdir -p $doc/share/doc
       mv doc/ $doc/share/doc/shaarli
       mkdir $out/
@@ -40,20 +40,16 @@ in rec {
       ${varDir}/phpSessions
     '';
   webRoot = shaarli;
-  apache = {
+  apache = rec {
     user = "wwwrun";
     group = "wwwrun";
     modules =  [ "proxy_fcgi" "rewrite" "env" ];
+    webappName = "tools_shaarli";
+    root = "/run/current-system/webapps/${webappName}";
     vhostConf = ''
-      Alias /Shaarli "${webRoot}"
-
-      <Directory "${webRoot}">
-        SetEnv SHAARLI_LDAP_PASSWORD "${env.ldap.password}"
-        SetEnv SHAARLI_LDAP_DN       "${env.ldap.dn}"
-        SetEnv SHAARLI_LDAP_HOST     "ldaps://${env.ldap.host}"
-        SetEnv SHAARLI_LDAP_BASE     "${env.ldap.base}"
-        SetEnv SHAARLI_LDAP_FILTER   "${env.ldap.search}"
+      Alias /Shaarli "${root}"
 
+      <Directory "${root}">
         DirectoryIndex index.php index.htm index.html
         Options Indexes FollowSymLinks MultiViews Includes
         AllowOverride All
@@ -64,7 +60,22 @@ in rec {
       </Directory>
       '';
   };
+  keys.tools-shaarli = {
+    destDir = "/run/keys/webapps";
+    user = apache.user;
+    group = apache.group;
+    permissions = "0700";
+    text = ''
+      SHAARLI_LDAP_PASSWORD="${env.ldap.password}"
+      SHAARLI_LDAP_DN="${env.ldap.dn}"
+      SHAARLI_LDAP_HOST="ldaps://${env.ldap.host}"
+      SHAARLI_LDAP_BASE="${env.ldap.base}"
+      SHAARLI_LDAP_FILTER="${env.ldap.search}"
+      '';
+  };
   phpFpm = rec {
+    serviceDeps = [ "openldap.service" "tools-shaarli-key.service" ];
+    envFile = "/run/keys/webapps/tools-shaarli";
     basedir = builtins.concatStringsSep ":" [ webRoot varDir ];
     socket = "/var/run/phpfpm/shaarli.sock";
     pool = ''
@@ -76,6 +87,7 @@ in rec {
         pm = ondemand
         pm.max_children = 60
         pm.process_idle_timeout = 60
+        clear_env = no
 
         ; Needed to avoid clashes in browser cookies (same domain)
         php_value[session.name] = ShaarliPHPSESSID