<p>Blocky is a <abbrtitle="Domain Name System">DNS</abbr> proxy and ad-blocker for the local network written in Go with following features:</p>
<h2id="features">Features</h2>
<ul>
<li>
<p><strong>Blocking</strong> - <imgalt="⛔"class="twemoji"src="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/26d4.svg"title=":no_entry:"/> Blocking of <abbrtitle="Domain Name System">DNS</abbr> queries with external lists (Ad-block, malware) and whitelisting</p>
<ul>
<li>Definition of black and white lists per client group (Kids, Smart home devices, etc.)</li>
<li>Periodical reload of external black and white lists</li>
<li>Regex support</li>
<li>Blocking of request domain, response <abbrtitle="Canonical Name">CNAME</abbr> (deep <abbrtitle="Canonical Name">CNAME</abbr> inspection) and response IP addresses (against IP lists)</li>
</ul>
</li>
<li>
<p><strong>Advanced <abbrtitle="Domain Name System">DNS</abbr> configuration</strong> - <imgalt="🤓"class="twemoji"src="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f913.svg"title=":nerd:"/> not just an ad-blocker</p>
<ul>
<li>Custom <abbrtitle="Domain Name System">DNS</abbr> resolution for certain domain names</li>
<li>Conditional forwarding to external <abbrtitle="Domain Name System">DNS</abbr> server</li>
<li>Upstream resolvers can be defined per client group</li>
</ul>
</li>
<li>
<p><strong>Performance</strong> - <imgalt="🚀"class="twemoji"src="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f680.svg"title=":rocket:"/> Improves speed and performance in your network</p>
<ul>
<li>Customizable caching of <abbrtitle="Domain Name System">DNS</abbr> answers for queries -> improves <abbrtitle="Domain Name System">DNS</abbr> resolution speed and reduces amount of external <abbrtitle="Domain Name System">DNS</abbr>
queries</li>
<li>Prefetching and caching of often used queries</li>
<p><strong>Various Protocols</strong> - <imgalt="💻"class="twemoji"src="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f4bb.svg"title=":computer:"/> Supports modern <abbrtitle="Domain Name System">DNS</abbr> protocols</p>
<ul>
<li><abbrtitle="Domain Name System">DNS</abbr> over <abbrtitle="User Datagram Protocol">UDP</abbr> and <abbrtitle="Transmission Control Protocol">TCP</abbr></li>
<li><abbrtitle="Domain Name System">DNS</abbr> over <abbrtitle="Hypertext Transfer Protocol Secure">HTTPS</abbr> (aka <abbrtitle="DNS-over-HTTPS">DoH</abbr>)</li>
<li><abbrtitle="Domain Name System">DNS</abbr> over TLS (aka <abbrtitle="DNS-over-TLS">DoT</abbr>)</li>
</ul>
</li>
<li>
<p><strong>Security and Privacy</strong> - <imgalt="🕶"class="twemoji"src="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f576.svg"title=":dark_sunglasses:"/> Secure communication</p>
<ul>
<li>Supports modern <abbrtitle="Domain Name System">DNS</abbr> extensions: <abbrtitle="Domain Name System Security Extensions">DNSSEC</abbr>, <abbrtitle="Extended DNS">eDNS</abbr>, ...</li>
<li>Free configurable blocking lists - no hidden filtering etc.</li>
<li>Uses random upstream resolvers from the configuration - increases your privacy through the distribution of your <abbrtitle="Domain Name System">DNS</abbr>
traffic over multiple provider</li>
<li>Open source development</li>
<li>Blocky does <strong>NOT</strong> collect any user data, telemetry, statistics etc.</li>
</ul>
</li>
<li>
<p><strong>Integration</strong> - <imgalt="📔"class="twemoji"src="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f4d4.svg"title=":notebook_with_decorative_cover:"/> various integration</p>
<li>Prepared <ahref="https://grafana.com/">Grafana</a> dashboards (Prometheus and database)</li>
<li>Logging of <abbrtitle="Domain Name System">DNS</abbr> queries per day / per client in <abbrtitle="Comma-separated values">CSV</abbr> format or MySQL/MariaDB/PostgreSQL database - easy to analyze</li>
<li>Various <abbrtitle="Representational State Transfer">REST</abbr><abbrtitle="Application Programming Interface">API</abbr> endpoints</li>
<li><abbrtitle="Command Line Interface">CLI</abbr> tool</li>
</ul>
</li>
<li>
<p><strong>Simple configuration</strong> - <imgalt="👶"class="twemoji"src="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/1f476.svg"title=":baby:"/> single configuration file in <abbrtitle="YAML Ain't Markup Language">YAML</abbr> format</p>
<ul>
<li>Simple to maintain</li>
<li>Simple to backup</li>
</ul>
</li>
<li>
<p><strong>Simple installation/configuration</strong> - <imgalt="☁"class="twemoji"src="https://cdnjs.cloudflare.com/ajax/libs/twemoji/14.0.2/svg/2601.svg"title=":cloud:"/> blocky was designed for simple installation</p>
<ul>
<li>Stateless (no database, no temporary files)</li>
<li>Docker image with Multi-arch support</li>
<li>Single binary</li>
<li>Supports x86-64 and ARM architectures -> runs fine on Raspberry PI</li>
<li>Community supported <abbrtitle="package manager for Kubernetes">Helm</abbr> chart for <abbrtitle="Kubernetes">k8s</abbr> deployment</li>
<scriptid="__config"type="application/json">{"base":".","features":[],"search":"assets/javascripts/workers/search.208ed371.min.js","translations":{"clipboard.copied":"Copied to clipboard","clipboard.copy":"Copy to clipboard","search.result.more.one":"1 more on this page","search.result.more.other":"# more on this page","search.result.none":"No matching documents","search.result.one":"1 matching document","search.result.other":"# matching documents","search.result.placeholder":"Type to start searching","search.result.term.missing":"Missing","select.version":"Select version"},"version":{"provider":"mike"}}</script>