adguard.nix 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. { config, ... }:
  2. let
  3. cfg = config.services.adguardhome;
  4. in
  5. {
  6. services.adguardhome = {
  7. enable = true;
  8. settings = {
  9. host = "0.0.0.0";
  10. openFirewall = true;
  11. users = [ ];
  12. dns.cache_enabled = true;
  13. dns.upstream_mode = "parallel";
  14. dns.upstream_dns = [
  15. "tls://security.cloudflare-dns.com"
  16. "tls://one.one.one.one"
  17. "tls://dns.google"
  18. "tls://dns.quad9.net"
  19. "tls://dns.digitale-gesellschaft.ch"
  20. "tls://child-noads.joindns4.eu"
  21. ];
  22. filtering.safe_search.enabled = false;
  23. filters = [
  24. {
  25. url = "https://github.com/AdguardTeam/FiltersRegistry/raw/refs/heads/master/filters/filter_2_Base/filter.txt";
  26. name = "AdGuard Base";
  27. enabled = true;
  28. }
  29. {
  30. url = "https://github.com/AdguardTeam/FiltersRegistry/raw/refs/heads/master/filters/filter_3_Spyware/filter.txt";
  31. name = "AdGuard Spyware";
  32. enabled = true;
  33. }
  34. {
  35. url = "https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/master/filters/filter_17_TrackParam/filter.txt";
  36. name = "AdGuard URL Tracking";
  37. enabled = true;
  38. }
  39. {
  40. url = "https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/refs/heads/master/filters/filter_4_Social/filter.txt";
  41. name = "AdGuard Social";
  42. enabled = true;
  43. }
  44. {
  45. url = "https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/master/filters/filter_14_Annoyances/filter.txt";
  46. name = "AdGuard Annoyances";
  47. enabled = true;
  48. }
  49. {
  50. url = "https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/master/filters/filter_11_Mobile/filter.txt";
  51. name = "AdGuard Mobile";
  52. enabled = true;
  53. }
  54. {
  55. url = "https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/master/filters/filter_6_German/filter.txt";
  56. name = "AdGuard German";
  57. enabled = true;
  58. }
  59. {
  60. url = "https://easylist.to/easylist/easyprivacy.txt";
  61. name = "EasyPrivacy";
  62. enabled = true;
  63. }
  64. {
  65. url = "https://raw.githubusercontent.com/uBlockOrigin/uAssets/refs/heads/master/filters/filters.txt";
  66. name = "uBlockOrigin";
  67. enabled = true;
  68. }
  69. ];
  70. };
  71. };
  72. services.caddy.virtualHosts.adguard = {
  73. hostName = "adguard.{$DOMAIN}";
  74. extraConfig = ''
  75. encode gzip zstd
  76. reverse_proxy ${cfg.host}:${toString cfg.port}
  77. '';
  78. };
  79. }