ooknet/outputs/pkgs/caddy-with-cloudflare/default.nix

45 lines
1.2 KiB
Nix

{
buildGoModule,
cacert,
go,
lib,
stdenv,
xcaddy,
caddy,
}:
caddy.override {
buildGoModule = args:
buildGoModule (args
// {
src = stdenv.mkDerivation rec {
pname = "caddy-using-xcaddy-${xcaddy.version}";
inherit (caddy) version;
dontUnpack = true;
dontFixup = true;
nativeBuildInputs = [cacert go];
plugins = [
"github.com/WeidiDeng/caddy-cloudflare-ip"
];
configurePhase = ''
export GOCACHE=$TMPDIR/go-cache
export GOPATH="$TMPDIR/go"
export XCADDY_SKIP_BUILD=1
'';
buildPhase = ''
${xcaddy}/bin/xcaddy build "${caddy.src.rev}" ${
lib.concatMapStringsSep " " (plugin: "--with ${plugin}") plugins
}
cd buildenv*
go mod vendor
'';
installPhase = ''
cp -r --reflink=auto . $out
'';
outputHash = "sha256-7FlCaHLuyESq+0YAkud7y83hY4oow7omJPTVVweEnJI=";
outputHashMode = "recursive";
};
subPackages = ["."];
ldflags = ["-s" "-w"];
vendorHash = null;
});
}