diff options
author | Aaron Andersen <aaron@fosslib.net> | 2022-02-18 11:27:25 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-18 11:27:25 -0500 |
commit | b3c0344c9d7d5dec543844f1ac7c17668e4622bb (patch) | |
tree | ef05c9d4f8b052257aa10b9c409d40815fdaf92e /nixos/modules/services/networking | |
parent | 95446037866cb8f8a131f8930958135223fa0e96 (diff) | |
parent | 6532d3417ea247f5088649027a9719a34ad64406 (diff) | |
download | nixpkgs-b3c0344c9d7d5dec543844f1ac7c17668e4622bb.tar nixpkgs-b3c0344c9d7d5dec543844f1ac7c17668e4622bb.tar.gz nixpkgs-b3c0344c9d7d5dec543844f1ac7c17668e4622bb.tar.bz2 nixpkgs-b3c0344c9d7d5dec543844f1ac7c17668e4622bb.tar.lz nixpkgs-b3c0344c9d7d5dec543844f1ac7c17668e4622bb.tar.xz nixpkgs-b3c0344c9d7d5dec543844f1ac7c17668e4622bb.tar.zst nixpkgs-b3c0344c9d7d5dec543844f1ac7c17668e4622bb.zip |
Merge pull request #156763 from ratsclub/blocky
nixos/blocky: init
Diffstat (limited to 'nixos/modules/services/networking')
-rw-r--r-- | nixos/modules/services/networking/blocky.nix | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/nixos/modules/services/networking/blocky.nix b/nixos/modules/services/networking/blocky.nix new file mode 100644 index 00000000000..7488e05fc03 --- /dev/null +++ b/nixos/modules/services/networking/blocky.nix @@ -0,0 +1,40 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.blocky; + + format = pkgs.formats.yaml { }; + configFile = format.generate "config.yaml" cfg.settings; +in +{ + options.services.blocky = { + enable = mkEnableOption "Fast and lightweight DNS proxy as ad-blocker for local network with many features"; + + settings = mkOption { + type = format.type; + default = { }; + description = '' + Blocky configuration. Refer to + <link xlink:href="https://0xerr0r.github.io/blocky/configuration/"/> + for details on supported values. + ''; + }; + }; + + config = mkIf cfg.enable { + systemd.services.blocky = { + description = "A DNS proxy and ad-blocker for the local network"; + wantedBy = [ "multi-user.target" ]; + + serviceConfig = { + DynamicUser = true; + ExecStart = "${pkgs.blocky}/bin/blocky --config ${configFile}"; + + AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ]; + CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ]; + }; + }; + }; +} |