anchor.diff:        example = "nginx";
         type = types.str;
         description = ''
  -        Name of the config adapter to use. Not applicable to Caddy v1.
  +        Name of the config adapter to use.
           See https://caddyserver.com/docs/config-adapters for the full list.
         '';
       };
  
positive.code:       after = [ "network-online.target" ];
        wants = [ "network-online.target" ]; # systemd-networkd-wait-online.service
        wantedBy = [ "multi-user.target" ];
        environment = mkIf (versionAtLeast config.system.stateVersion "17.09" && !isCaddy2)
          { CADDYPATH = cfg.dataDir; };
        serviceConfig = {
          ExecStart = if isCaddy2 then ''
            ${cfg.package}/bin/caddy run --config ${configJSON}
          '' else ''
            ${cfg.package}/bin/caddy -log stdout -log-timestamps=false \
              -root=/var/tmp -conf=${configFile} \
              -ca=${cfg.ca} -email=${cfg.email} ${optionalString cfg.agree "-agree"}
          '';
          ExecReload =
            if isCaddy2 then
              "${cfg.package}/bin/caddy reload --config ${configJSON}"
            else
              "${pkgs.coreutils}/bin/kill -USR1 $MAINPID";
          Type = "simple";
          User = "caddy";
          Group = "caddy";
  
negative.code:     package = mkOption {
        default = pkgs.caddy;
        defaultText = "pkgs.caddy";
        example = "pkgs.caddy";
        type = types.package;
        description = ''
          Caddy package to use.
        '';
      };
    };
  