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/