2025-05-24 09:01:46 +02:00
2025-05-24 09:01:46 +02:00
2025-05-23 18:00:02 +02:00
2025-04-21 01:42:42 +02:00
2025-05-24 07:31:27 +02:00
2025-05-24 06:21:53 +00:00
2025-01-11 22:58:54 +01:00
2025-05-23 18:00:02 +02:00
2025-05-24 07:31:27 +02:00
2025-05-18 21:04:44 +02:00

GoAway - DNS Sinkhole

GitHub Release GitHub Actions Workflow Status GitHub Downloads (all assets, all releases) Docker pulls

A lightweight DNS sinkhole for blocking unwanted domains, inspired by Pi-hole.

goaway Dashboard Preview

View more screenshots

🌟 Features

  • 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...

📋 Requirements

  • For binary installation: Linux, macOS, or Windows
  • For Docker installation: Docker and Docker Compose
  • Supported architectures: amd64, arm64, and 386

📦 Installation

Run GoAway in a containerized environment:

docker run pommee/goaway:latest

# Best is to use the compose file in this repository
docker compose up -d

Use compose for more customization, example can be found here

Option 2: Quick Install

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.4

The installer will:

  1. Detect your operating system and architecture
  2. Download the appropriate binary
  3. Install it to ~/.local/bin
  4. Set up necessary permissions

If the installer fails, you can manually download binaries from the releases page.

Option 3: Build from source

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
./goaway

🚀 Getting Started

Basic Usage

Start the DNS and web server with default settings:

goaway

You'll see a startup message confirming the services are running:

Startup Screen

Configuration Options

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)

Custom Configuration

The default settings are defined in settings.json. You can customize it by modifying the values as needed.

⚠️ 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.

Dev

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-server

💫 Contributing

You can start a new discussion here if features are wanted. Please report any issues encountered here.

📜 License

This project is licensed under the MIT License - see the LICENSE file for details.

🙏 Acknowledgments

This project is heavily inspired by Pi-hole. Thanks to all people involved for their work.

Description
DNS sinkhole written in Go with a modern dashboard client
Readme MIT 20 MiB
Languages
TypeScript 61.1%
Go 34.5%
CSS 3.5%
Shell 0.5%
Makefile 0.2%