goNewsD

A simple, standalone NNTP news server written in Go.

Open Source — GPL-3.0 GitHub Repository

What is gonewsd?

gonewsd is a lightweight, standalone NNTP (Network News Transfer Protocol) server for hosting private newsgroups. It started as a Go port of the original newsd by Greg Ercolano, with additional features for modern private newsgroup use.

Unlike traditional Usenet servers, gonewsd is designed for private use — serving one or more newsgroups on your local network or via the internet. Perfect for team discussions, project coordination, or hobbyist communities.

gonewsd screenshot

What is Usenet?

Think of it as Reddit before the Web even existed. Usenet is one of the oldest computer network communication systems — created in 1979, over a decade before the World Wide Web (1991). It consists of newsgroups — discussion forums organized by topic — where users post and read messages using NNTP clients.

At its peak, Usenet hosted over 100,000 newsgroups with millions of active users worldwide. While public Usenet has declined with the rise of web forums and social media, the underlying technology remains remarkably robust and useful:

  • Decentralized — No single point of failure or control
  • Offline-friendly — Clients sync and cache messages locally
  • Threaded discussions — Native support for conversation threading
  • Efficient — Text-based, low bandwidth, works on any connection
  • Private — Run your own server for team/community use
NNTP

Features

🔐

Authentication

Built-in user authentication with a SQLite backend and flexible per-group access controls (ACLs).

🛠

Easy Administration

Manage groups, users, and permissions quickly through an easy-to-use CLI menu workflow.

gonewsdadm CLI menu
📧

Mail Gateway

Post messages via email using the built-in mail-to-news gateway — bridge email and newsgroups seamlessly.

📦

Static Binary

Written in Go and statically compiled — runs as a single binary with no external dependencies.

🐧

Systemd Ready

Includes a systemd service template for easy deployment and management on Linux servers.

🖥

Cross-Platform

Builds for Linux and macOS — both amd64 and arm64 architectures supported.

📚

Well Documented

Full documentation covering installation, configuration, and the ACL database schema.

Quick Start

Step 1: Get the binaries

Download pre-built binaries from the Releases page, or build from source:

git clone https://github.com/runableapp/gonewsd.git
cd gonewsd
task build

Step 2: Configure and run

# Copy and edit config file
cp gonewsd.conf /etc/gonewsd.conf

# Create a newsgroup
./bin/gonewsd -c /etc/gonewsd.conf addgroup \
  -group my.discussion -g rw -o r \
  -desc "My discussion group"

# Start the server
./bin/gonewsd -c /etc/gonewsd.conf

Step 3: Connect

Use your favorite NNTP client (Thunderbird, tin, slrn, etc.) to connect to your server.

For detailed installation instructions, see the Installation Guide.

Documentation

Full documentation is available in the manuals/ directory:

📖

INSTALL.md

Installation and setup guide.

CONFIGURATION.md

Configuration reference.

🔒

ACL_DB.md

Auth database schema.

Run gonewsd help for built-in command reference.

Download & Source