]> git.immae.eu Git - perso/Immae/Config/Nix.git/blobdiff - nixops/modules/websites/phpfpm/default.nix
Add noChroot for pgloader
[perso/Immae/Config/Nix.git] / nixops / modules / websites / phpfpm / default.nix
index 882babcd8e9d61a94c9869c3600dee37db2278cb..60959e08e9812f0c4a228125146f08cdb14ccaaa 100644 (file)
@@ -83,6 +83,32 @@ in {
         '';
       };
 
+      envFile = mkOption {
+        default = {};
+        type = types.attrsOf types.string;
+        example = literalExample ''
+          { mypool = "path/to/file";
+          }
+        '';
+        description = ''
+          Extra environment file go into the service script.
+        '';
+      };
+
+      preStart = mkOption {
+        default = {};
+        type = types.attrsOf types.lines;
+        example = literalExample ''
+          { mypool = '''
+              touch foo
+            ''';
+          }
+        '';
+        description = ''
+          Extra lines that will go into the preStart systemd service
+        '';
+      };
+
       poolPhpConfigs = mkOption {
         default = {};
         type = types.attrsOf types.lines;
@@ -169,11 +195,12 @@ in {
         partOf = [ "phpfpm.target" ];
         preStart = ''
           mkdir -p ${stateDir}
-        '';
+        '' + (cfg.preStart.${pool} or "");
         serviceConfig = let
           cfgFile = fpmCfgFile pool poolConfig;
           poolPhpIni = cfg.poolPhpConfigs.${pool} or "";
         in {
+          EnvironmentFile = if builtins.hasAttr pool cfg.envFile then [cfg.envFile.${pool}] else [];
           Slice = "phpfpm.slice";
           PrivateDevices = true;
           ProtectSystem = "full";