https://github.com/pommee/goaway
Lightweight DNS sinkhole written in Go with a modern dashboard client
https://github.com/pommee/goaway
block dns go networking server
Last synced: about 2 months ago
JSON representation
Lightweight DNS sinkhole written in Go with a modern dashboard client
- Host: GitHub
- URL: https://github.com/pommee/goaway
- Owner: pommee
- License: mit
- Created: 2024-12-30T09:20:48.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2026-04-11T07:44:22.000Z (2 months ago)
- Last Synced: 2026-04-11T08:26:14.353Z (2 months ago)
- Topics: block, dns, go, networking, server
- Language: TypeScript
- Homepage: https://pommee.github.io/goaway/
- Size: 15.3 MB
- Stars: 697
- Watchers: 4
- Forks: 35
- Open Issues: 18
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README




A lightweight DNS sinkhole for blocking unwanted domains at the network level. Block ads, trackers, and malicious domains before they reach your devices.

**[View more screenshots](./resources/PREVIEW.md)**
## Getting started
Instructions for installation, configuration and more can be found on the homepage: https://pommee.github.io/goaway
> [!WARNING]
> GoAway is still in version 0.x.x and is subject to major changes from version to version.
> Feedback is appreciated as bugs are to be expected.
## Features
- DNS-level domain blocking
- Web-based admin dashboard
- Cross-platform & Docker support
- Customizable blocking rules
- Real-time statistics
- Low resource footprint
- And much more...
### Contributing
Contributions are welcomed! Here's how you can help:
1. **Report Issues:** Found a bug? [Create an issue](https://github.com/pommee/goaway/issues/new?template=bug_report.md)
2. **Request Features:** Have an idea? [Start a discussion](https://github.com/pommee/goaway/discussions) or create a [feature request](https://github.com/pommee/goaway/issues/new?template=feature_request.md)
3. **Submit PRs:** Before any work is started, create a new issue explaining what is wanted, why it would fit, how it can be done, so on and so forth...
Once the topic has been discussed with a maintainer then either you or a maintainer starts with the implementation. This is done to prevent any collisions, save time and confusion. [Read more here](./CONTRIBUTING.md)
## Platform Support
| Platform | Architecture | Support Level |
| -------- | ------------ | ------------- |
| Linux | amd64 | Full |
| Linux | arm64 | Full |
| Linux | 386 | Full |
| macOS | amd64 | Beta |
| macOS | arm64 | Beta |
| Windows | amd64 | Beta |
| Windows | 386 | Beta |
> **Note**: Primary testing is conducted on Linux (amd64). While the aim is to support all listed platforms, functionality on macOS and Windows may vary.
## Troubleshooting
### Common Issues
**Permission Denied (Port 53)**
- DNS servers typically require elevated privileges to bind to port 53
**Can't Access Dashboard**
- Check if port 8080 is available and not blocked by firewall
- Try accessing via `http://localhost:8080` on the same machine
**DNS Not Working**
- Verify GoAway is running and listening on the correct interface
- Check device DNS settings point to GoAway's IP address
- Test with `nslookup google.com ` or `dig @ google.com.`
## Performance
GoAway is designed to be lightweight and efficient:
- **Memory Usage:** Typically < 50MB RAM, depends on usage
- **CPU Usage:** Minimal impact on system performance
- **Network:** Low latency DNS resolution
- **Storage:** Logs and statistics use minimal disk space
## License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## Acknowledgments
This project is heavily inspired by [Pi-hole](https://github.com/pi-hole/pi-hole). Thanks to all people involved for their work.