An open API service indexing awesome lists of open source software.

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

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

Screenshot

---

## ๐Ÿงช 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 โค๏ธ