2
0
Fork 0
mirror of https://github.com/0xERR0R/blocky.git synced 2026-01-08 21:58:55 +01:00
Fast and lightweight DNS proxy as ad-blocker for local network with many features
Find a file
2026-01-08 08:15:06 +01:00
.devcontainer Bugfix in ECS forward (#1290) 2023-12-03 14:29:31 -05:00
.github build(deps): bump actions/download-artifact from 6 to 7 (#1961) 2025-12-15 04:16:17 +00:00
.vscode Refactoring/config struct names (#1315) 2023-12-20 15:38:33 -05:00
api refactor: use mockery for mocks (#1944) 2025-11-22 22:09:51 +01:00
cache refactor: clean up obsolete Go syntax (#1951) 2025-12-03 06:54:53 +01:00
cmd refactor: remove duplicated code patterns in resolver and cmd packages (#1932) 2025-11-14 16:52:19 +01:00
config feat: implement DNS64 support (#1933) 2026-01-08 08:15:06 +01:00
docs feat: implement DNS64 support (#1933) 2026-01-08 08:15:06 +01:00
e2e feat: implement DNS64 support (#1933) 2026-01-08 08:15:06 +01:00
evt refactor: Use package local metrics (#1578) 2024-09-04 07:21:34 +02:00
helpertest refactor: clean up obsolete Go syntax (#1951) 2025-12-03 06:54:53 +01:00
lists refactor: clean up obsolete Go syntax (#1951) 2025-12-03 06:54:53 +01:00
log feat: add DNSSEC validation (#1914) 2025-11-07 21:12:05 +01:00
metrics refactor: clean up obsolete Go syntax (#1951) 2025-12-03 06:54:53 +01:00
model feat: implement DNS64 support (#1933) 2026-01-08 08:15:06 +01:00
querylog refactor: clean up obsolete Go syntax (#1951) 2025-12-03 06:54:53 +01:00
redis refactor: clean up obsolete Go syntax (#1951) 2025-12-03 06:54:53 +01:00
resolver feat: implement DNS64 support (#1933) 2026-01-08 08:15:06 +01:00
server feat: implement DNS64 support (#1933) 2026-01-08 08:15:06 +01:00
trie test: Improve e2e tests (#1728) 2025-03-06 21:36:57 +01:00
util feat: implement DNS64 support (#1933) 2026-01-08 08:15:06 +01:00
web feat: enhance error messages with more context (#1894) 2025-10-18 20:51:28 +02:00
.dockerignore Unit test refactoring & devcontainer enhancement(#1245) 2023-11-15 16:42:53 +01:00
.gitattributes Feature/devcontainer (#1179) 2023-10-02 22:08:05 +02:00
.gitignore feat: support CNAME records in customDNS mappings (#1352) 2024-01-29 11:22:03 -05:00
.golangci.yml feat: support DNS Stamp upstream format (#1922) 2025-11-11 07:53:45 +01:00
.goreleaser.yml feat: add MIPS architecture builds (#1929) 2025-11-14 16:53:17 +01:00
.mockery.yaml refactor: use mockery for mocks (#1944) 2025-11-22 22:09:51 +01:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2021-03-05 10:58:39 +01:00
codecov.yml feat: API-first approach for REST interface (#1129) 2023-09-09 19:30:55 +02:00
Dockerfile test: add e2e coverage task (#1902) 2025-10-21 21:20:10 +02:00
go.mod build(deps): bump github.com/miekg/dns from 1.1.68 to 1.1.69 (#1959) 2025-12-12 04:06:09 +00:00
go.sum build(deps): bump github.com/miekg/dns from 1.1.68 to 1.1.69 (#1959) 2025-12-12 04:06:09 +00:00
LICENSE added license text 2020-01-13 21:57:57 +01:00
main.go use full-qualified name as module 2021-08-27 13:41:36 +02:00
main_static.go refactor: clean up obsolete Go syntax (#1951) 2025-12-03 06:54:53 +01:00
Makefile refactor: use mockery for mocks (#1944) 2025-11-22 22:09:51 +01:00
mkdocs.yml docs: add dark mode (#1896) 2025-10-19 11:17:59 +02:00
README.md feat: add DNSSEC validation (#1914) 2025-11-07 21:12:05 +01:00

GitHub Workflow Status GitHub Workflow Status GitHub latest version GitHub Release Date GitHub go.mod Go version Docker pulls Docker Image Size (latest) Codecov Codacy grade Go Report Card Donation

Blocky

Blocky is a DNS proxy and ad-blocker for the local network written in Go with following features:

Features

  • Blocking - Blocking of DNS queries with external lists (Ad-block, malware) and allowlisting

    • Definition of allow/denylists per client group (Kids, Smart home devices, etc.)
    • Periodical reload of external allow/denylists
    • Regex support
    • Blocking of request domain, response CNAME (deep CNAME inspection) and response IP addresses (against IP lists)
  • Advanced DNS configuration - not just an ad-blocker

    • Custom DNS resolution for certain domain names
    • Conditional forwarding to external DNS server
    • Upstream resolvers can be defined per client group
  • Performance - Improves speed and performance in your network

    • Customizable caching of DNS answers for queries -> improves DNS resolution speed and reduces amount of external DNS queries
    • Prefetching and caching of often used queries
    • Using multiple external resolver simultaneously
    • Low memory footprint
  • Various Protocols - Supports modern DNS protocols

    • DNS over UDP and TCP
    • DNS over HTTPS (aka DoH)
    • DNS over TLS (aka DoT)
  • Security and Privacy - Secure communication

    • Supports modern DNS extensions: DNSSEC, eDNS, ...
    • DNSSEC validation of upstream resolvers
    • Free configurable blocking lists - no hidden filtering etc.
    • Provides DoH Endpoint
    • Uses random upstream resolvers from the configuration - increases your privacy through the distribution of your DNS traffic over multiple provider
    • Blocky does NOT collect any user data, telemetry, statistics etc.
  • Integration - various integration

    • Prometheus metrics
    • Prepared Grafana dashboards (Prometheus and database)
    • Logging of DNS queries per day / per client in CSV format or MySQL/MariaDB/PostgreSQL/Timescale database - easy to analyze
    • Various REST API endpoints
    • CLI tool
  • Simple configuration - single or multiple configuration files in YAML format

    • Simple to maintain
    • Simple to backup
  • Simple installation/configuration - blocky was designed for simple installation

    • Stateless (no database, no temporary files)
    • Docker image with Multi-arch support
    • Single binary
    • Supports x86-64 and ARM architectures -> runs fine on Raspberry PI
    • Community supported Helm chart for k8s deployment

Quick start

You can jump to Installation chapter in the documentation.

Full documentation

You can find full documentation and configuration examples at: https://0xERR0R.github.io/blocky/

Contribution

Issues, feature suggestions and pull requests are welcome!

ko-fi