Jump to content

Blocky: Difference between revisions

fix syntax
imported>TAKYON
(Blocky is a DNS proxy and ad-blocker for the local network written in Go.)
 
(fix syntax)
 
(7 intermediate revisions by 6 users not shown)
Line 1: Line 1:
Blocky is a DNS proxy and ad-blocker for the local network written in Go.  
[https://github.com/0xERR0R/blocky Blocky] is a DNS proxy and ad-blocker for the local network written in Go.  
It provides network wide adblocking similar to Pi-hole while offering additional features (and it's in nixpkgs).
It provides network wide adblocking similar to Pi-hole while offering additional features (and it's in nixpkgs).




== Configuration Examples ==
== Configuration Examples ==
<code>services.blocky = {
<syntaxHighlight lang=nix>
services.blocky = {
     enable = true;
     enable = true;
     settings = {
     settings = {
       port = 53; # Port for incoming DNS Queries.
       ports.dns = 53; # Port for incoming DNS Queries.
       upstream.default = [
       upstreams.groups.default = [
         "https://one.one.one.one/dns-query" # Using Cloudflare's DNS over HTTPS server for resolving queries.
         "https://one.one.one.one/dns-query" # Using Cloudflare's DNS over HTTPS server for resolving queries.
       ];
       ];
       # For initially solving DoH/DoT Requests when no system Resolver is available.
       # For initially solving DoH/DoT Requests when no system Resolver is available.
       bootstrap.Dns = {
       bootstrapDns = {
         upstream = "https://one.one.one.one/dns-query";
         upstream = "https://one.one.one.one/dns-query";
         ips = [ "1.1.1.1" "1.0.0.1" ];
         ips = [ "1.1.1.1" "1.0.0.1" ];
       };
       };
       #Enable Blocking of certian domains.
       #Enable Blocking of certain domains.
       blocking = {
       blocking = {
         blackLists = {
         blackLists = {
Line 24: Line 25:
           adult = ["https://blocklistproject.github.io/Lists/porn.txt"];
           adult = ["https://blocklistproject.github.io/Lists/porn.txt"];
           #You can add additional categories
           #You can add additional categories
      };
        };
      #Configure what block categories are used
        #Configure what block categories are used
      clientGroupsBlock = {
        clientGroupsBlock = {
        default = [ "ads" ];
          default = [ "ads" ];
        kids-ipad = ["ads" "adult"];
          kids-ipad = ["ads" "adult"];
        };
       };
       };
     };
     };
   };</code>
   };
 
</syntaxHighlight>


== Adding Additional Functionality ==
== Adding Additional Functionality ==
To add a cache of DNS Requests and Prefetching add:
To add a cache of DNS Requests and Prefetching add:


<code>caching = {
<syntaxHighlight lang=nix>
caching = {
   minTime = "5m";
   minTime = "5m";
   maxTime = "30m"
   maxTime = "30m"
   prefetching = true;
   prefetching = true;
};</code>
};
</syntaxHighlight>
 
[[Category:Server]]
[[Category:Cookbook]]