From 962515c10edfff34e4b4a4c5bfe712ec0b55f09c Mon Sep 17 00:00:00 2001 From: Noah Masur <7386960+nmasur@users.noreply.github.com> Date: Sun, 5 May 2024 15:18:43 -0400 Subject: [PATCH] replace caddy-cloudflare overlay with nixpkgs pr plugin override --- flake.lock | 17 +++++++ flake.nix | 9 +++- hosts/arrow/default.nix | 6 ++- modules/nixos/services/cloudflare.nix | 12 ++++- overlays/caddy.nix | 64 --------------------------- 5 files changed, 39 insertions(+), 69 deletions(-) delete mode 100644 overlays/caddy.nix diff --git a/flake.lock b/flake.lock index 59901b2..7479445 100644 --- a/flake.lock +++ b/flake.lock @@ -402,6 +402,22 @@ "type": "github" } }, + "nixpkgs-caddy": { + "locked": { + "lastModified": 1699107987, + "narHash": "sha256-nWXETr4Oqy/vOfzgWyMY04qzEN2iREFJc5ycQ3XNu0A=", + "owner": "jpds", + "repo": "nixpkgs", + "rev": "a33b02fa9d664f31dadc8a874eb1a5dbaa9f4ecf", + "type": "github" + }, + "original": { + "owner": "jpds", + "ref": "caddy-external-plugins", + "repo": "nixpkgs", + "type": "github" + } + }, "nur": { "locked": { "lastModified": 1714880338, @@ -537,6 +553,7 @@ "nix2vim": "nix2vim", "nixos-generators": "nixos-generators", "nixpkgs": "nixpkgs", + "nixpkgs-caddy": "nixpkgs-caddy", "nur": "nur", "nvim-lint-src": "nvim-lint-src", "nvim-lspconfig-src": "nvim-lspconfig-src", diff --git a/flake.nix b/flake.nix index 38b8ac9..aa1d0a3 100644 --- a/flake.nix +++ b/flake.nix @@ -7,6 +7,9 @@ # Used for system packages nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + # Used for caddy plugins + nixpkgs-caddy.url = "github:jpds/nixpkgs/caddy-external-plugins"; + # Used for MacOS system config darwin = { url = "github:lnl7/nix-darwin/master"; @@ -249,7 +252,6 @@ (import ./overlays/calibre-web.nix) (import ./overlays/disko.nix inputs) (import ./overlays/tree-sitter.nix inputs) - (import ./overlays/caddy.nix inputs) (import ./overlays/mpv-scripts.nix inputs) (import ./overlays/nextcloud-apps.nix inputs) (import ./overlays/betterlockscreen.nix) @@ -328,9 +330,12 @@ format = "iso"; modules = import ./hosts/arrow/modules.nix { inherit inputs globals overlays; }; }; - x86_64-linux.arrow-aws = inputs.nixos-generators.nixosGenerate { + x86_64-linux.arrow-aws = inputs.nixos-generators.nixosGenerate rec { system = "x86_64-linux"; format = "amazon"; + specialArgs = { + pkgs-caddy = import inputs.nixpkgs-caddy { inherit system; }; + }; modules = import ./hosts/arrow/modules.nix { inherit inputs globals overlays; } ++ [ # import # ./modules/aws diff --git a/hosts/arrow/default.nix b/hosts/arrow/default.nix index 90f5922..67b8feb 100644 --- a/hosts/arrow/default.nix +++ b/hosts/arrow/default.nix @@ -8,9 +8,11 @@ ... }: -inputs.nixpkgs.lib.nixosSystem { +inputs.nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; - specialArgs = { }; + specialArgs = { + pkgs-caddy = import inputs.nixpkgs-caddy { inherit system; }; + }; modules = import ./modules.nix { inherit inputs globals overlays; } ++ [ { # This is the root filesystem containing NixOS diff --git a/modules/nixos/services/cloudflare.nix b/modules/nixos/services/cloudflare.nix index 3ba4fa5..404dc0a 100644 --- a/modules/nixos/services/cloudflare.nix +++ b/modules/nixos/services/cloudflare.nix @@ -11,6 +11,7 @@ { config, pkgs, + pkgs-caddy, lib, ... }: @@ -62,7 +63,16 @@ in caddy.cidrAllowlist = cloudflareIpRanges; # Tell Caddy to use Cloudflare DNS for ACME challenge validation - services.caddy.package = pkgs.caddy-cloudflare; # Patched overlay + services.caddy.package = pkgs-caddy.caddy.override { + externalPlugins = [ + { + name = "cloudflare"; + repo = "github.com/caddy-dns/cloudflare"; + version = "master"; + } + ]; + vendorHash = "sha256-C7JOGd4sXsRZL561oP84V2/pTg7szEgF4OFOw35yS1s="; + }; caddy.tlsPolicies = [ { issuers = [ diff --git a/overlays/caddy.nix b/overlays/caddy.nix deleted file mode 100644 index c72ac98..0000000 --- a/overlays/caddy.nix +++ /dev/null @@ -1,64 +0,0 @@ -# Adds the Cloudflare DNS validation module - -inputs: _final: prev: - -let - - plugins = [ "github.com/caddy-dns/cloudflare" ]; - goImports = prev.lib.flip prev.lib.concatMapStrings plugins (pkg: " _ \"${pkg}\"\n"); - goGets = prev.lib.flip prev.lib.concatMapStrings plugins (pkg: "go get ${pkg}\n "); - main = '' - package main - import ( - caddycmd "github.com/caddyserver/caddy/v2/cmd" - _ "github.com/caddyserver/caddy/v2/modules/standard" - ${goImports} - ) - func main() { - caddycmd.Main() - } - ''; -in -{ - caddy-cloudflare = prev.buildGoModule { - pname = "caddy-cloudflare"; - version = prev.caddy.version; - runVend = true; - - subPackages = [ "cmd/caddy" ]; - - src = prev.caddy.src; - - vendorHash = "sha256-zeuvCk7kZa/W/roC12faCQDav4RB8RT1dR2Suh2yjD8="; - - overrideModAttrs = ( - _: { - preBuild = '' - echo '${main}' > cmd/caddy/main.go - ${goGets} - ''; - 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 = with prev.lib; { - homepage = "https://caddyserver.com"; - description = "Fast, cross-platform HTTP/2 web server with automatic HTTPS"; - license = licenses.asl20; - maintainers = with maintainers; [ - Br1ght0ne - techknowlogick - ]; - }; - }; -}