2025-05-01 09:15:20 +02:00
2025-04-30 17:05:19 +02:00
2025-04-21 01:42:42 +02:00
2025-05-01 09:15:20 +02:00
2025-05-01 05:51:25 +02:00
2025-04-04 21:31:50 +02:00
2025-04-28 18:15:34 +02:00
2025-04-30 17:05:19 +02:00
2025-04-30 17:05:19 +02:00
2025-01-11 22:58:54 +01:00
2025-04-26 09:05:23 +02:00
2025-04-28 18:15:34 +02:00
2025-04-05 07:58:23 +02:00

goaway - DNS Sinkhole

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

📋 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

Use compose for more customization, example can be found here

Option 2: Quick Install

Install the latest version with the installation script:

curl https://raw.githubusercontent.com/pommee/goaway/main/installer.sh | sh /dev/stdin

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.

🚀 Getting Started

Basic Usage

Start the DNS and web servers with default settings:

goaway

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

Startup Screen

Configuration Options

goaway --help

Usage:
  goaway [flags]

Flags:
      --auth                      If false, then no authentication is required for the admin dashboard (default true)
      --disablelogging            If true, then no logs will appear in the container
      --dnsport int               Port for the DNS server (default 53)
  -h, --help                      help for goaway
      --loglevel int              0 = DEBUG | 1 = INFO | 2 = WARNING | 3 = ERROR (default 1)
      --statisticsRetention int   Number is amount of days to keep statistics (default 1)
      --webserverport 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

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

S
Description
DNS sinkhole written in Go with a modern dashboard client
Readme MIT 21 MiB
Languages
TypeScript 59.6%
Go 36.1%
CSS 3.4%
Shell 0.5%
Makefile 0.2%