Last active
March 1, 2024 16:40
-
-
Save Denperidge/694950245dc440b9a54798cf1840c8cf to your computer and use it in GitHub Desktop.
Nix caddy with modules maybe?
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ lib | |
, buildGoModule | |
, fetchFromGitHub | |
, nixosTests | |
, caddy | |
, testers | |
, installShellFiles | |
}: | |
let | |
version = "2.7.6"; | |
dist = fetchFromGitHub { | |
owner = "caddyserver"; | |
repo = "dist"; | |
rev = "v${version}"; | |
hash = "sha256-aZ7hdAZJH1PvrX9GQLzLquzzZG3LZSKOvt7sWQhTiR8="; | |
}; | |
in | |
buildGoModule { | |
pname = "caddy"; | |
inherit version; | |
src = fetchFromGitHub { | |
owner = "caddyserver"; | |
repo = "caddy"; | |
rev = "v${version}"; | |
hash = "sha256-th0R3Q1nGT0q5PGOygtD1/CpJmrT5TYagrwQR4t/Fvg="; | |
}; | |
vendorHash = "sha256-ebnSehuhbCY58ctM8IRVMfNxxbJBp6ht9cbuLdGFNek="; | |
subPackages = [ "cmd/caddy" ]; | |
ldflags = [ | |
"-s" "-w" | |
"-X github.com/caddyserver/caddy/v2.CustomVersion=${version}" | |
]; | |
nativeBuildInputs = [ installShellFiles ]; | |
postInstall = '' | |
install -Dm644 ${dist}/init/caddy.service ${dist}/init/caddy-api.service -t $out/lib/systemd/system | |
substituteInPlace $out/lib/systemd/system/caddy.service --replace "/usr/bin/caddy" "$out/bin/caddy" | |
substituteInPlace $out/lib/systemd/system/caddy-api.service --replace "/usr/bin/caddy" "$out/bin/caddy" | |
$out/bin/caddy add-package github.com/caddy-dns/porkbun | |
$out/bin/caddy manpage --directory manpages | |
installManPage manpages/* | |
installShellCompletion --cmd caddy \ | |
--bash <($out/bin/caddy completion bash) \ | |
--fish <($out/bin/caddy completion fish) \ | |
--zsh <($out/bin/caddy completion zsh) | |
''; | |
passthru.tests = { | |
inherit (nixosTests) caddy; | |
version = testers.testVersion { | |
command = "${caddy}/bin/caddy version"; | |
package = caddy; | |
}; | |
}; | |
meta = with lib; { | |
homepage = "https://caddyserver.com"; | |
description = "Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS"; | |
license = licenses.asl20; | |
mainProgram = "caddy"; | |
maintainers = with maintainers; [ Br1ght0ne emilylange techknowlogick ]; | |
}; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment