Fast and lightweight DNS proxy as ad-blocker for local network with many features
Go to file
dependabot[bot] 10f9e59e9f
Bump github.com/onsi/gomega from 1.10.5 to 1.11.0 (#160)
Bumps [github.com/onsi/gomega](https://github.com/onsi/gomega) from 1.10.5 to 1.11.0.
- [Release notes](https://github.com/onsi/gomega/releases)
- [Changelog](https://github.com/onsi/gomega/blob/master/CHANGELOG.md)
- [Commits](https://github.com/onsi/gomega/compare/v1.10.5...v1.11.0)

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-03-08 09:38:06 +01:00
.github update golangci-lint, fixint lint errors 2021-03-05 22:52:22 +01:00
api go fmt 2021-02-26 21:39:41 +01:00
cmd #147: Blocky commands do not run without local ./config.yml file 2021-02-26 22:42:00 +01:00
config #139: Multiple IP addresses for Custom DNS 2021-03-07 22:50:47 +01:00
docs #139: Multiple IP addresses for Custom DNS 2021-03-07 22:50:47 +01:00
evt public API documentation (#146) 2021-02-26 13:45:57 +01:00
helpertest public API documentation (#146) 2021-02-26 13:45:57 +01:00
lists update golangci-lint, fixint lint errors 2021-03-05 22:52:22 +01:00
log go fmt 2021-02-26 21:39:41 +01:00
metrics public API documentation (#146) 2021-02-26 13:45:57 +01:00
resolver #139: Multiple IP addresses for Custom DNS 2021-03-07 22:50:47 +01:00
server #139: Multiple IP addresses for Custom DNS 2021-03-07 22:50:47 +01:00
stats public API documentation (#146) 2021-02-26 13:45:57 +01:00
testdata #139: Multiple IP addresses for Custom DNS 2021-03-07 22:50:47 +01:00
util public API documentation (#146) 2021-02-26 13:45:57 +01:00
web update golangci-lint, fixint lint errors 2021-03-05 22:52:22 +01:00
.dockerignore replaced swagger-ui with static version to reduce memory footprint 2021-01-08 22:12:55 +01:00
.gitignore Docs (#158) 2021-03-05 08:02:00 +01:00
.golangci.yml update golangci-lint, fixint lint errors 2021-03-05 22:59:09 +01:00
CODE_OF_CONDUCT.md Create CODE_OF_CONDUCT.md 2021-03-05 10:58:39 +01:00
Dockerfile #141: Switch to Go 1.16 2021-03-05 22:31:48 +01:00
LICENSE added license text 2020-01-13 21:57:57 +01:00
Makefile #141: Switch to Go 1.16 2021-03-05 22:31:48 +01:00
README.md Docs (#158) 2021-03-05 08:02:00 +01:00
codecov.yml added codecov config 2020-02-13 22:24:47 +01:00
go.mod Bump github.com/onsi/gomega from 1.10.5 to 1.11.0 (#160) 2021-03-08 09:38:06 +01:00
go.sum Bump github.com/onsi/gomega from 1.10.5 to 1.11.0 (#160) 2021-03-08 09:38:06 +01:00
main.go #27: CLI tool 2020-04-08 23:03:07 +02:00
mkdocs.yml Docs (#158) 2021-03-05 08:02:00 +01:00

README.md

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 Dependabot Status

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 whitelisting

    • Definition of black and white lists per client group (Kids, Smart home devices, etc.)
    • Periodical reload of external black and white lists
    • 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
  • 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, ...
    • Free configurable blocking lists - no hidden filtering etc.
    • Provides DoH Endpoint
    • Uses random upstream resolvers from the configuration - increases you privacy though 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 dashboard
    • Logging of DNS queries per day / per client in CSV format - easy to analyze
    • Statistics report via CLI
    • Various REST API endpoints
    • CLI tool
  • Simple configuration - single configuration file in YAML format

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

    • 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!