diff options
Diffstat (limited to 'modules/services/nixos/selfhost/adguard.nix')
| -rw-r--r-- | modules/services/nixos/selfhost/adguard.nix | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/modules/services/nixos/selfhost/adguard.nix b/modules/services/nixos/selfhost/adguard.nix new file mode 100644 index 0000000..196dab5 --- /dev/null +++ b/modules/services/nixos/selfhost/adguard.nix @@ -0,0 +1,54 @@ +{ + config, + lib, + ... +}: let + cfg = config.collinux.services.selfhost.adguard; + + # tailscale constants (should be configured elsewhere) + tailscaleIP = "100.69.180.89"; +in + lib.mkIf cfg.enable (lib.mkMerge [ + { + services.adguardhome = { + enable = true; + port = 8001; + mutableSettings = true; + settings = { + http = { + pprof.enabled = false; + address = "localhost:${toString config.services.adguardhome.port}"; + }; + users = []; # disable auth (only accessable over tailscale anyway) + dns = { + bind_hosts = [ + ( + if config.collinux.services.networking.tailscale.enable + then tailscaleIP + else "0.0.0.0" + ) + ]; + upstream_dns = ["1.1.1.1"]; + }; + tls.enabled = false; + dhcp.enabled = false; + }; + }; + + # tailscale stuff + # disable systemd-resolved (https://github.com/AdguardTeam/AdGuardHome/wiki/FAQ#bindinuse) + services.resolved.extraConfig = lib.mkIf config.services.resolved.enable '' + DNS=127.0.0.1 + DNSStubListener=no + ''; + } + (lib.mkIf config.collinux.services.networking.tailscale.enable { + services.tailscale.extraSetFlags = ["--accept-dns=false"]; # would create an infinite loop of dns lookups + services.caddy = lib.mkIf config.collinux.services.selfhost.caddy.enable { + virtualHosts."https://adguard.tail7cca06.ts.net".extraConfig = '' + bind tailscale/adguard + reverse_proxy ${config.services.adguardhome.settings.http.address} + ''; + }; + }) + ]) |
