From: [email protected]
Date: 2018-09-03
Subject: On Using a News Server to Host Discussions

I  share a BSD VPS with some local hackers.  I would like some kind
of bulletin board to facilitate  asynchronous  conversations  among
users  of  the  system.  One solution to this, a solution that cur-
rently exists and suits my needs,  is  an  network  news  (NNTP[1])
server.  NNTP is the protocol that underpins USENET[2].

What is USENET?

USENET is a discussion system that emerged in the 1980s.  Early on,
it was primarily used by academics who  had  access  to  the  UUCP-
NET[3],  a  precursor  to  the  internet.   The decline and fall of
USENET, beginning in 1993, has been well-documented[4].  My  under-
standing  is that USENET users migrated to web forums at first and,
later, to social media networks such as Digg, Reddit, and Facebook.

It is possible to run a news server that does not interact with the
greater  USENET.  There are a number of news servers available, but
INN2[5] is one of the most popular.  News servers organize  conver-
sations  within  "news  groups".   Users connect to the news server
with a news reader, either locally or remotely, to  read  and  post
messages.   Example newsreaders include slrn and tin.  Recent email
clients, such as Thunderbird, also included NNTP clients.

What are the Alternatives?

We also plan to have an email list.  Mailing lists can  effectively
host  discussions  and  have a long history of doing so.  But high-
volume conversations can choke the inbox of someone who is not used
to  organizing  email  from mailing lists.  Mailing lists also have
poor discoverability for newcomers.  NNTP uses a pull-type interac-
tion so that users are not inundated with messages they are not in-
terested in.

Instant messaging services such as IRC, XMPP,  Slack,  GNU  Social,
Mastodon,  and others are great for relatively synchronous communi-
cations.  For more involved conversations, these platforms  present
some  challenges.   In  the  case of IRC and XMPP, messages are not
centrally archived (not without some doing, anyway),  so  newcomers
and  those  without  persistent  connections will miss parts of the
conversation.  Instant messaging clients also encourage short,  in-
formal  messages of one or two sentences.  Platforms like email and
news carry an expectation of longer messages  appropriate  for  in-
depth discussion.

Web forums are analogous to news servers from a user's perspective.
Conversations  can  be  organized  into  topics  and  conversations
threaded  for  easy reading.  However, each web forum provides it's
own user interface.  Web  forums  require  significantly  more  re-
sources  than  news  servers and present a number of security chal-
lenges.  On the client side, web browsers are becoming increasingly
heavy and have their own problems in terms of security and usabili-
ty.  Legacy news server and client software should play  well  with
the target BSD environment.

A service like Reddit could host a private subreddit.  This is sim-
ilar to a web forum, but removes the need to host the  application.
It  would also provide an interface and interaction model that most
people are familiar with.  This would provide many of the  benefits
I'm  looking  for.  My only complaint is that the content would not
be under my control, and users would be  tied  to  client  software
that  works with Reddit (along with Reddit's terms and conditions).
There's also the potential for a mismatch between the users on  the
VPS and the users who have access to the subreddit.

What are the Risks?

NNTP  is  a  relatively archaic protocol.  For a single-node setup,
wrapping connections in SSH tunnels should solve the bulk of poten-
tial  security  issues.   Requiring local accounts and valid public
keys should also reduce the attack surface.   Other  problems  come
into  play  if groups are going to be shared among servers.  Again,
public key authentication can help matters, but content and conduct
are  mostly  a  matter of policy.  In this aspect, federated models
like Mastodon have an advantage.

What's Next?

I need to install an NNTPd.  The  industrial-strength  solution  is
INN  2.0.   There  is a lightweight server, WendzelNNTPd[6], that's
made for a single-node setup.  At first, I plan  to  have  a  small
number  of  local groups that are only available to users that have
an account on the VPS.  Topics of conversations will likely include
user  projects,  general conversation, specific languages, specific
tools, requests of the system administrator, and  announcements  of
meetings  and  other administrativa.  News readers can be connected
to a news server through an SSH tunnel.

If this takes off, it might be interesting  to  find  other  groups
that  in the area that are doing something similar and share select
newsgroups across systems.  Each system could have a set of private
groups (e.g. local.*) that are not sent to other systems, and a set
of networked groups (e.g. net.*) that are shared.  This brings with
it,  in  a limited way, the problems that plagued USENET at the be-
ginning of the end.  An attempt to remedy this through  policy  was
proposed as USENET 2[7].

I  think there would be a significant benefit in putting geographic
bounds on these networks.  This mirrors the reality of how we live,
and  I  think  we could all use a healthy dose of reality.  This is
also an important aspect of the 1990s BBS culture that, I  believe,
contributed  to  the civility of those discussions.  There's incen-
tive to be nice when you might have to look someone in the  eye  at
the  next  meetup.   Good  solutions already exist for global-scale
discussions and file-sharing.

A news server is a reasonable choice for hosting discussions within
a  shared  Unix-style environment.  Servers, clients, and protocols
already exist and are in use daily.  For groups that want to  share
discussions across systems, the USENET 2 proposal provides a set of
rules that aim to create and maintain an environment that is  (rea-
sonably) free from abuse (e.g.  spam, file-sharing).


References

[1]: https://en.wikipedia.org/wiki/Network_News_Transfer_Protocol
[2]: https://en.wikipedia.org/wiki/Usenet
[3]: https://en.wikipedia.org/wiki/UUCP#UUCPNET_and_mapping
[4]: https://www.reddit.com/r/dredmorbius/comments/3c3xyu/why_usenet_died/
[5]: https://www.eyrie.org/~eagle/software/inn/
[6]: https://github.com/cdpxe/WendzelNNTPd
[7]: https://web.archive.org/web/20050829181349/http://usenet2.org/