summaryrefslogtreecommitdiff
path: root/modules/nixos/traits/resolved.nix
blob: f21f8c3f1908e26a9f5bfcc0b607de4a9cada878 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
{
  config,
  lib,
  ...
}:
let
  cfg = config.traits.resolved;
in
{
  options.traits.resolved = {
    enable = lib.mkEnableOption "systemd-resolved as the DNS resolver" // {
      default = true;
    };

    networkManagerIntegration = lib.mkEnableOption "integration with network-manager" // {
      default = config.networking.networkmanager.enable;
      defaultText = "config.networking.networkmanager.enable";
    };
  };

  config = lib.mkIf cfg.enable (
    lib.mkMerge [
      {
        networking.nameservers = [
          "1.1.1.1#one.one.one.one"
          "1.0.0.1#one.one.one.one"
        ];

        services.resolved = {
          enable = true;
          dnsovertls = "true";
        };
      }

      (lib.mkIf cfg.networkManagerIntegration {
        networking.networkmanager.dns = "systemd-resolved";
      })
    ]
  );
}