1
0

adguard.nix 2.5 KB

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