anchor.diff:        '';
       };
   
  +    poolSettings = mkOption {
  +      type = with types; attrsOf (oneOf [ str int bool ]);
  +      default = {
  +        "pm" = "dynamic";
  +        "pm.max_children" = "32";
  +        "pm.start_servers" = "2";
  +        "pm.min_spare_servers" = "2";
  +        "pm.max_spare_servers" = "4";
  +        "pm.max_requests" = "500";
  +      };
  +      description = ''
  +        Options for nextcloud's PHP pool. See the documentation on <literal>php-fpm.conf</literal> for details on configuration directives.
  +      '';
  +    };
  +
       poolConfig = mkOption {
  -      type = types.lines;
  -      default = ''
  -        pm = dynamic
  -        pm.max_children = 32
  -        pm.start_servers = 2
  -        pm.min_spare_servers = 2
  -        pm.max_spare_servers = 4
  -        pm.max_requests = 500
  -      '';
  +      type = types.nullOr types.lines;
  +      default = null;
         description = ''
           Options for nextcloud's PHP pool. See the documentation on <literal>php-fpm.conf</literal> for details on configuration directives.
         '';
  
positive.code:           message = "Please specify exactly one of adminpass or adminpassFile";
          }
        ];
      }
  
      { systemd.timers.nextcloud-cron = {
  
negative.code:           settings = mapAttrs (name: mkDefault) {
              "listen.owner" = "nginx";
              "listen.group" = "nginx";
            } // cfg.poolSettings;
            extraConfig = cfg.poolConfig;
          };
        };
  