adguard.nix 2.4 KB

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