Simple News Server

[ home | game | s-news | openal | fxglut | xfcalc | misc ]



What is s-news?

S-news is a simple news server for hosts with one or two users. It is intended to supply spool and offline news reading for a configured selection of newsgroups. S-news does the minimum required to maintain a conventional news spool and makes use of suck for news transport.

Why s-news?

Because there was no existing news servers that fit my needs. My requirements are:

  1. Articles must be provided in the standard /var/spool/news format with .overview files as well as via NNTP.
  2. The server needs to be fed by pulling news from any number of external news server without using the NNTP NEWNEWS command.
  3. The nntpd must be able to run from inetd.
  4. The news server must not try and do anything silly like mirror article numbers from the server the article are pulled from, fetch active or newsgroups files or fetch any groups I've not explicitly told it to.

This only left a combination of suck and c-news. C-news is not really appropriate for a small leaf site. Writing s-news looked as if it would be a lot less trouble than getting c-news installed and configured.


  • It provides a NNTP service and /var/spool/news for local news readers.
  • It supports any number of incoming news feeds via NNTP either by IHAVE or suck(1).
  • Outgoing news feeds are made from locally posted articles and reposted remotely by rpost(1).
  • It expires articles by how long they have been in the spool.
  • It has NNTP access configuration to allow and deny read, post and transfer access to remote hosts.
  • It is very light weight and relatively easy to configure.

The suck package includes suck(1) and rpost(1).


  • No control messages are processed.
  • It can not feed another site.
  • It expects the article reposting to handle newsgroup moderation.
  • Outgoing articles only go to the first matching host in the newsfeeds file.
  • It uses O_EXECL file locking witch is documented as being broken on NFS.


To compile s-news you will need a UNIX like OS with dirent. You will also need the gdbm library. For a fully functioning s-news suck is required.

[ home | game | s-news | openal | fxglut | xfcalc | misc ]