From aa739bc24d397cd97cc8dfe4062c252be3f0e65c Mon Sep 17 00:00:00 2001 From: happysalada Date: Thu, 5 Nov 2020 13:06:51 +0900 Subject: [PATCH] modules: add nextdns service --- modules/services/nextdns/default.nix | 42 ++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 modules/services/nextdns/default.nix diff --git a/modules/services/nextdns/default.nix b/modules/services/nextdns/default.nix new file mode 100644 index 00000000..b4a87c37 --- /dev/null +++ b/modules/services/nextdns/default.nix @@ -0,0 +1,42 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.nextdns; + nextdns = pkgs.nextdns; + +in { + options = { + services.nextdns = { + enable = mkOption { + type = types.bool; + default = false; + description = + "Whether to enable the NextDNS DNS/53 to DoH Proxy service."; + }; + arguments = mkOption { + type = types.listOf types.str; + default = [ ]; + example = [ "-config" "10.0.3.0/24=abcdef" ]; + description = "Additional arguments to be passed to nextdns run."; + }; + }; + }; + + config = mkIf cfg.enable { + + environment.systemPackages = [ nextdns ]; + + launchd.user.agents.nextdns = { + path = [ nextdns ]; + script = '' + "${pkgs.nextdns}/bin/nextdns run ${escapeShellArgs cfg.arguments}"; + ''; + + serviceConfig.KeepAlive = true; + serviceConfig.RunAtLoad = true; + }; + + }; +}