1
0

adguard.nix 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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. filters = [
  23. {
  24. url = "https://github.com/AdguardTeam/FiltersRegistry/raw/refs/heads/master/filters/filter_2_Base/filter.txt";
  25. name = "AdGuard Base";
  26. enabled = true;
  27. }
  28. {
  29. url = "https://github.com/AdguardTeam/FiltersRegistry/raw/refs/heads/master/filters/filter_3_Spyware/filter.txt";
  30. name = "AdGuard Spyware";
  31. enabled = true;
  32. }
  33. {
  34. url = "https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/master/filters/filter_17_TrackParam/filter.txt";
  35. name = "AdGuard URL Tracking";
  36. enabled = true;
  37. }
  38. {
  39. url = "https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/refs/heads/master/filters/filter_4_Social/filter.txt";
  40. name = "AdGuard Social";
  41. enabled = true;
  42. }
  43. {
  44. url = "https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/master/filters/filter_14_Annoyances/filter.txt";
  45. name = "AdGuard Annoyances";
  46. enabled = true;
  47. }
  48. {
  49. url = "https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/master/filters/filter_11_Mobile/filter.txt";
  50. name = "AdGuard Mobile";
  51. enabled = true;
  52. }
  53. {
  54. url = "https://raw.githubusercontent.com/AdguardTeam/FiltersRegistry/master/filters/filter_6_German/filter.txt";
  55. name = "AdGuard German";
  56. enabled = true;
  57. }
  58. {
  59. url = "https://easylist.to/easylist/easyprivacy.txt";
  60. name = "EasyPrivacy";
  61. enabled = true;
  62. }
  63. {
  64. url = "https://raw.githubusercontent.com/uBlockOrigin/uAssets/refs/heads/master/filters/filters.txt";
  65. name = "uBlockOrigin";
  66. enabled = true;
  67. }
  68. ];
  69. };
  70. };
  71. services.caddy.virtualHosts.adguard = {
  72. hostName = "adguard.{$DOMAIN}";
  73. extraConfig = ''
  74. encode gzip zstd
  75. reverse_proxy ${cfg.host}:${toString cfg.port}
  76. '';
  77. };
  78. }