A lightweight DNS sinkhole for blocking unwanted domains, inspired by Pi-hole.
- DNS-level domain blocking
- Web-based admin dashboard
- Cross-platform support
- Docker support
- Customizable blocking rules
- Real-time statistics
- Low resource footprint
- And much more...
- For binary installation: Linux, macOS, or Windows
- For Docker installation: Docker and Docker Compose
- Supported architectures: amd64, arm64, and 386
Run GoAway in a containerized environment:
docker run pommee/goaway:latest
# Best is to use the compose file in this repository
docker compose up -dUse compose for more customization, example can be found here
Install using the installation script:
# Latest version available
curl https://raw.githubusercontent.com/pommee/goaway/main/installer.sh | sh /dev/stdin
# Specific version
curl https://raw.githubusercontent.com/pommee/goaway/main/installer.sh | sh /dev/stdin 0.40.4The installer will:
- Detect your operating system and architecture
- Download the appropriate binary
- Install it to
~/.local/bin - Set up necessary permissions
If the installer fails, you can manually download binaries from the releases page.
Last option is to build from source:
# Build the frontend client that will be embedded into the binary
make build
# Build GoAway binary
go build -o goaway
# Start
./goawayStart the DNS and web server with default settings:
goawayYou'll see a startup message confirming the services are running:
goaway --help
GoAway is a DNS sinkhole with a web interface
Usage:
goaway [flags]
Flags:
--auth Disable authentication for admin dashboard (default true)
--dns-port int Port for the DNS server (default 53)
-h, --help help for goaway
--log-level int 0 = DEBUG | 1 = INFO | 2 = WARNING | 3 = ERROR (default 1)
--logging Toggle logging (default true)
--statistics-retention int Days to keep statistics (default 1)
--webserver-port int Port for the web server (default 8080)The default settings are defined in settings.yaml. You can customize it by modifying the values as needed.
| 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.
The dashboard and servers are started separately, reason being hot-reloads and not having to embed the client into the binary.
make dev-website
make dev-serverYou can start a new discussion here if features are wanted. Please report any issues encountered here.
This project is licensed under the MIT License - see the LICENSE file for details.
This project is heavily inspired by Pi-hole. Thanks to all people involved for their work.

