anchor.diff:          default = false;
           description = ''
             Enable piwik web analytics with php-fpm backend.
  +          Either the nginx option or the webServerUser option is mandatory.
           '';
         };
   
         webServerUser = mkOption {
  -        type = types.str;
  -        example = "nginx";
  -        description = ''
  -          Name of the owner of the ${phpSocket} fastcgi socket for piwik.
  +        type = types.nullOr types.str;
  +        default = null;
  +        example = "lighttpd";
  +        description = ''
  +          Name of the web server user that forwards requests to the ${phpSocket} fastcgi socket for piwik if the nginx
  +          option is not used. Either this option or the nginx option is mandatory.
             If you want to use another webserver than nginx, you need to set this to that server's user
             and pass fastcgi requests to `index.php` and `piwik.php` to this socket.
           '';
  
positive.code:       serviceConfig.UMask = "0007";
      };
  
      services.phpfpm.poolConfigs = {
        ${pool} = ''
          listen = "${phpSocket}"
          listen.owner = ${cfg.webServerUser}
          listen.group = root
          listen.mode = 0600
          user = ${user}
  
negative.code:   };
  
    config = mkIf cfg.enable {
      warnings = mkIf (cfg.nginx != null && cfg.webServerUser != null) [
        "If services.piwik.nginx is set, services.piwik.nginx.webServerUser is ignored and should be removed."
      ];
  
      assertions = [ {
          assertion = cfg.nginx != null || cfg.webServerUser != null;
          message = "Either services.piwik.nginx or services.piwik.nginx.webServerUser is mandatory";
      }];
  
      users.extraUsers.${user} = {
        isSystemUser = true;
  