# Gopherhole Go built DNS server for blocking ads. Like Pi-hole but for hackers. Works with Pi-hole block lists. Find more Pi-Hole compatible block lists here: - [x] Has support for custom DNS records and block lists. - [x] Supports custom upstream DNS servers for recursively resolving domains. - [x] Supports reloading block lists via HTTP API. - [ ] Setting to use hosts file as upstream - [ ] Generate example config command. - [ ] Supports adding block lists and records via HTTP API. - [ ] Prometheus metrics support. - [ ] HTTP JSON API metrics. - [ ] DNS over HTTPS. ## How to use - `go get git.vdhsn.com/adam/gopherhole` - run like so: ```sh gopherhole -config ./config.json -bind-http 127.0.0.1 -bind-dns 127.0.0.1 -block-forward-ip 127.0.0.1 ``` - example config.json file below: ```json { "upstream": [ "1.1.1.1", "8.8.8.8" ], "records": { "mynas.internal": { "Type": "A", "Record": "192.168.0.99" }, "eyeofsauron.com": { "Type": "CNAME", "Record": "www.google.com" } }, "blocklists": [ "https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts", "https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt", "https://s3.amazonaws.com/lists.disconnect.me/simple_tracking.txt" ] } ``` ## License GPL-V3