{ base, config, pkgs, lib, ... }: lib.recursiveUpdate {
  services.caddy.enable = true;
  services.caddy.configFile = lib.pipe ./caddy/caddyfile.nix [
    import
    (f: f { inherit pkgs lib; })
    builtins.toJSON
    (pkgs.writeText "caddy.json")
  ];
  services.caddy.package = pkgs.callPackage ../packages/caddy.nix { };
  services.caddy.user = "root";
  systemd.services.caddy.serviceConfig.ProtectHome = lib.mkForce false;

  sops.secrets.cloudflare_token = {
    mode = "0600";
    owner = config.users.users.root.name;
    group = config.users.users.nobody.group;
    sopsFile = ../secrets/caddy.json;
    format = "json";
  };
} (
  let
    isDerived = base != null;
  in
  if isDerived
  then
    let
      caddy_json = base.config.services.caddy.configFile;
    in
    {
      scalpel.trafos."caddy.json" = {
        source = toString caddy_json;
        matchers."cloudflare_token".secret =
          config.sops.secrets.cloudflare_token.path;
        owner = config.users.users.root.name;
        group = config.users.users.nobody.group;
        mode = "0400";
      };

      services.caddy.configFile = lib.mkForce config.scalpel.trafos."caddy.json".destination;
    }
  else { }
)
