Skip to content
go-while edited this page Nov 3, 2026 · 8 revisions

NewsCache

NewsCache is a caching server for Usenet news (NNTP). To newsreaders it looks like an ordinary news server; to the upstream news server it looks like a newsreader. It stores only what at least one client has asked for: when a client requests an article, NewsCache answers from its spool if it can, and otherwise fetches the article from the upstream server, stores it and passes it on.

Typical uses:

  • A cache in front of a news server, to take load off it.
  • A small "leaf node" that shows clients a full feed but stores only the groups and articles people actually read.
  • One server for several upstreams: each newsgroup can be read from, and posted to, a different upstream server; clients configure just one.
  • Offline reading, with groups prefetched by updatenews.

NewsCache is free software under the GNU General Public License, version 2 or later.

Releases

The current release is 1.3.22 (2026-10-23). Releases, with tarballs and checksums: https://github.com/go-while/NewsCache/releases.

The next release is in preparation on main, mostly bug fixes. The main changes (see the Unreleased section of NEWS and the pending changes entries):

  • Reply codes per RFC 3977 and RFC 4643: 481 for a failed login (was 502), 201 when the client may not post, 403 instead of 503 for upstream failures and internal faults. See NNTP Commands and Access and Authentication.
  • New options: ReadTimeout, MaxArticleSize, MaxPostSize; NiceClean is used now, and numeric options are checked. See Configuration.
  • Client TLS: TLSListenTo offers implicit TLS directly when built with GnuTLS. It is off unless configured; see TLS for Clients.
  • Security fixes: LIST ACTIVE with a wildmat and LIST NEWSGROUPS showed groups outside the client's List; the log file and the pid file were written through symbolic links; newscacheclean followed symbolic links in the spool; with starttls, the upstream password could go out before STARTTLS; a stack overflow with long group patterns.
  • Robustness: an upstream server that stops answering no longer hangs sessions; SIGTERM ends sessions within about a second, without reconnecting upstream; big article files can't be left cut off by a crash; endless lines and articles from servers and clients are cut off by limits.
  • Build: NewsCache builds on Debian GNU/Hurd.

Pages

Page What it covers
Installation Building from a tarball or git, Debian/Ubuntu package, Fedora, container image, systemd and inetd
Configuration A minimal config, the global options, NewsServerList
Access and Authentication AccessList, rights, logins (auth file, PAM, unix)
Upstream Servers and TLS Several upstream servers, group patterns, TLS and certificates
TLS for Clients NNTP over TLS for newsreaders (port 563, from 1.3.23), certificates, AuthRequiresTLS
Caching and Large Groups How the cache works, large groups, the message-ID history, cleaning the spool, prefetching
NNTP Commands The commands NewsCache answers, and how
Troubleshooting Logs, checking the config, common problems, reporting bugs
Development Tests, CI, branches, how changes and releases are made

The full reference is in the manual pages (newscache.conf(5), newscache(8), updatenews(8), newscacheclean(8)) and the Texinfo manual doc/NewsCache.texi (installed as info NewsCache). The annotated sample configuration is etc/newscache.conf-dist.

History

Years Who What
1995–2001 Thomas Gschwind, TU Wien Idea and prototype as a master's thesis; NewsCache 0.99.x
2000–2008 Herbert Straub 1.1.x and 1.2rc6 (2004): access lists with PAM, newscacheclean
2008–2024 Christof Meerwald The 1.3 line in Subversion: IPv6, TLS with GnuTLS, systemd
since 2026 this repository Maintained here since 2026-10-18, with Christof Meerwald's agreement; releases from 1.3.17 on

This repository is now the upstream. It holds the complete history: Herbert Straub's GitHub import of 1.2rc6, with Christof Meerwald's Subversion history on top (branch trunk). Details and the original websites are in the README.

Getting help

Clone this wiki locally