prefect: use custom caddy build

This commit is contained in:
Mr Hedgehog 2022-07-10 11:01:29 -04:00
parent 8bf3dc84d1
commit 1f3c9f8a18
No known key found for this signature in database
2 changed files with 64 additions and 0 deletions

View file

@ -6,6 +6,11 @@
}: {
services.caddy = {
enable = true;
package = pkgs.callPackage ../../../pkgs/caddy.nix {
plugins = [
"github.com/greenpau/caddy-security"
];
};
email = "hedgehog@mrhedgehog.xyz";
# globalConfig = ''
# '';

59
pkgs/caddy.nix Normal file
View file

@ -0,0 +1,59 @@
{ lib, fetchFromGitHub, buildGoModule, plugins ? [], vendorSha256 ? "" }:
with lib;
let imports = flip concatMapStrings plugins (pkg: "\t\t\t_ \"${pkg}\"\n");
main = ''
package main
import (
caddycmd "github.com/caddyserver/caddy/v2/cmd"
_ "github.com/caddyserver/caddy/v2/modules/standard"
${imports}
)
func main() {
caddycmd.Main()
}
'';
in buildGoModule rec {
pname = "caddy";
version = "2.4.6";
runVend = true;
subPackages = [ "cmd/caddy" ];
src = fetchFromGitHub {
owner = "caddyserver";
repo = "caddy";
rev = "v${version}";
sha256 = "sha256-xNCxzoNpXkj8WF9+kYJfO18ux8/OhxygkGjA49+Q4vY=";
};
inherit vendorSha256;
overrideModAttrs = (_: {
preBuild = "echo '${main}' > cmd/caddy/main.go";
postInstall = "cp go.sum go.mod $out/ && ls $out/";
});
postPatch = ''
echo '${main}' > cmd/caddy/main.go
cat cmd/caddy/main.go
'';
postConfigure = ''
cp vendor/go.sum ./
cp vendor/go.mod ./
'';
meta = {
homepage = https://caddyserver.com;
description = "Fast, cross-platform HTTP/2 web server with automatic HTTPS";
license = licenses.asl20;
maintainers = with maintainers; [ Br1ght0ne ];
};
}