1import ./make-test-python.nix ({ pkgs, ... }: {
2 name = "dnscrypt-proxy2";
3 meta = with pkgs.lib.maintainers; {
4 maintainers = [ joachifm ];
5 };
6
7 nodes = {
8 # A client running the recommended setup: DNSCrypt proxy as a forwarder
9 # for a caching DNS client.
10 client =
11 { ... }:
12 let localProxyPort = 43; in
13 {
14 security.apparmor.enable = true;
15
16 services.dnscrypt-proxy2.enable = true;
17 services.dnscrypt-proxy2.settings = {
18 listen_addresses = [ "127.0.0.1:${toString localProxyPort}" ];
19 sources.public-resolvers = {
20 urls = [ "https://download.dnscrypt.info/resolvers-list/v2/public-resolvers.md" ];
21 cache_file = "public-resolvers.md";
22 minisign_key = "RWQf6LRCGA9i53mlYecO4IzT51TGPpvWucNSCh1CBM0QTaLn73Y7GFO3";
23 refresh_delay = 72;
24 };
25 };
26
27 services.dnsmasq.enable = true;
28 services.dnsmasq.servers = [ "127.0.0.1#${toString localProxyPort}" ];
29 };
30 };
31
32 testScript = ''
33 client.wait_for_unit("dnsmasq")
34 client.wait_for_unit("dnscrypt-proxy2")
35 '';
36})