2025-04-04 21:34:22 +02:00
2025-02-09 20:10:47 +01:00
2025-03-08 09:39:43 +01:00
2025-04-04 21:31:50 +02:00
2025-03-28 23:09:18 +01:00
2025-02-25 17:50:03 +01:00
2025-04-03 17:41:34 +02:00
2025-04-03 17:41:34 +02:00
2025-01-11 22:58:54 +01:00
2025-04-04 21:31:50 +02:00
2025-04-04 21:31:50 +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

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.

Option 2: Docker Installation

Run goaway in a containerized environment. There are two options:

First one requires a clone of this repository and running the following in project root:

make start

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

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