https://github.com/baderkha/dns-no-ads
A local running self hosted gui application that can block ads on the dns level for a host computer
https://github.com/baderkha/dns-no-ads
adblock dns golang gui local
Last synced: 9 months ago
JSON representation
A local running self hosted gui application that can block ads on the dns level for a host computer
- Host: GitHub
- URL: https://github.com/baderkha/dns-no-ads
- Owner: baderkha
- License: mit
- Created: 2025-03-30T07:56:06.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-03-30T08:15:52.000Z (about 1 year ago)
- Last Synced: 2025-03-30T09:19:31.839Z (about 1 year ago)
- Topics: adblock, dns, golang, gui, local
- Language: Go
- Homepage:
- Size: 7.19 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.MD
- License: LICENSE
Awesome Lists containing this project
README
# ๐ก๏ธ Local AdBlocker (Go + Gio)
A fast, local-first adblocker written in **Go**, featuring a beautiful **Gio-powered GUI**, a custom **local DNS server**, and first-class support for **Windows**. Designed to be **lightweight**, **privacy-respecting**, and eventually **cross-platform**.
---
## โจ Features
- ๐ซ **Ad & Tracker Blocking** via local DNS filtering
- ๐ฅ๏ธ **Gio GUI**: Clean, modern UI for controlling and monitoring DNS activity
- ๐ช **First-Class Windows Support**: Easy install and tray integration
- ๐ **Cross-Platform by Design**: Targeting Linux and macOS in upcoming releases
- ๐ ๏ธ **Customizable Hosts & Blocklists**
- ๐ Real-time DNS query logs and blocking stats
---
## ๐ Getting Started
### Prerequisites
- [Go 1.21+](https://golang.org/dl/)
- Windows 10/11 (for full support)
- Admin privileges (to bind to port 53 and modify DNS settings)
### Installation
```bash
git clone https://github.com/baderkha/dns-no-ads
cd dns-no-ads
go run .\cmd\client\main.go
```
> โ ๏ธ On Windows, run as administrator for proper DNS interception.
---
## ๐ง How It Works
- **DNS Proxy Server**: Intercepts all DNS requests from your machine.
- **Blocklist Matching**: Domains are checked against filter rules and known ad/tracker lists.
- **Gio UI**: Provides a 1 click toggle feature to turn on the filtering local server and turn it off
---
## Screen shot

---
## ๐งช Roadmap
- [x] Local DNS blocking
- [x] Gio UI for query logs and stats
- [x] Windows support
- [x] Linux Support
- [ ] Darwin Support
- [ ] Auto-updating blocklists
- [ ] Per-app/domain filtering controls
---
## ๐ Contributing
Pull requests, feature suggestions, and issue reports are welcome!
---
## ๐ License
MIT License. See [LICENSE](./LICENSE) for details.
---
## ๐ฌ Acknowledgements
- [gioui.org](https://gioui.org/) โ for the GUI framework
- [Go DNS libraries](https://pkg.go.dev/github.com/miekg/dns)
- [Hagezi](https://github.com/hagezi/dns-blocklists) - Open source blocklist maintainers โค๏ธ