NNTP

From Tildeverse Wiki

The Network News Transfer Protocol (NNTP) is an application protocol used for transporting Usenet news articles (netnews) between news servers, and for reading/posting articles by the end user client applications.

Usenet was originally designed based on the UUCP network, with most article transfers taking place over direct point-to-point telephone links between news servers, which were powerful time-sharing systems. Readers and posters logged into these computers reading the articles directly from the local disk.

The tildeverse has a small, private net news network that can be accessed through several tildes using clients below. Some tildes provide public access for users outside of the tildeverse, or those who want access without first connecting to a tilde server.

Depending on which server you connect to, the list of newsgroups might differ slightly, e.g. cosmic.voyage has local groups with cosmic.* that may not be available on other hosts while news.tildeverse.org has local.* Groups beginning with tilde.* are intended to be shared across all participating tilde peers.

Participating tildes

The following lists all of the known tildes that provides access to the tildeverse netnews.

tilde.club

Our primary gateway for those accessing from the outside. Read-write, accessible via news.tilde.club, nntp.tilde.club, and news.tildeverse.org, port 119. See also https://news.tildeverse.org/.

tilde.team

Read-only, accessible via news.tilde.team, nntp.tilde.team, and nntp.tildeverse.org, port 119. You have to ssh inside to post.

cosmic.voyage

Remote write access available via cosmic.voyage over SSL on port 563 for tilde members with username and password. Read-only access when unauthenticated or via unencrypted port 119. Local users can also post freely.

yourtilde.com

Read-write, accessible via yourtilde.com, port 119.

Newsgroups

The Tildeverse Netnews hierarchy is designated as:

tilde.*

When possible, Tildeverse server names should be reserved for local server news group to be shared with the wider Tildeverse. For example:

tilde.team.*
tilde.institute.*
tilde.cosmic.*

Would be a sets of news groups managed by the tilde.team, tilde.institute, and cosmic.voyage administrators, respectively. And, these newsgroups are available to the entire Tildeverse via peering.

Currently active tilde.* newsgroups:

Note: there is a planned restructuring of these groups coming in the near future to better future-proof the system. The current process for approving new groups is also TBD.

tilde.art.ascii         Share and admire ascii art
tilde.art.music         Groovin' in tildespace
tilde.bsd               Discussion about BSD operating systems
tilde.club              The first tilde
tilde.cosmic            Tildeverse chat about cosmic.voyage
tilde.food+drink        Have a sip and a nibble
tilde.gopher            Port 70s greatest hits
tilde.green             Tildeverse chat about tilde.green
tilde.institute         Tildeverse chat about tilde.institute
tilde.javascript        The worlds greatest language to hate
tilde.meetups           Meet in meatspace
tilde.meta              Miscellaneous chat
tilde.nsfw              XXX
tilde.php               PHP programming language
tilde.pink              Tildeverse chat about tilde.pink
tilde.poetry            Poetry for the tildeverse
tilde.projects          Hobbies and projects in the tildeverse
tilde.python            Python programming language
tilde.radiofreqs        Tildeverse chat about radiofreqs.space
tilde.services          Tildeverse services and discussion
tilde.services.uucp     The UUCP protocol
tilde.team              Tildeverse chat about tilde.team
tilde.text              Discussion about text-only communication
tilde.town              Tildeverse chat about tilde.town
tilde.your              Tildeverse chat about yourtilde.com

Local Newsgroups

Tildeverse servers may serve their own, local groups that are not distributed to the wider Tildeverse. Suggested hieararchies might be:

* local.*
* <tildeserver>.*

Examples of locally served newsgroups might be:

* local.*
* team.*
* yourtilde.*
* aussies.*

Management of local news groups is left to the individual Tildeverse server admins.

Usenet Newsgroups

As with local news groups, Tildeverse servers may choose to serve Usenet newsgroups. Peering arrangements and newsgroup management is left to the individual Tildeverse news server admins. As an example, RadioFreqs.space may offer the

* rec.radio.*
* sci.astronomy
* sci.electronics

newsgroups to its users.

Individual Tilde's may peer external netnews networks, such as Usenet. It is highly discouraged to peer the tilde.* hierarchy outside the the Tildeverse.

News clients

slrn

slrn is a newsreader; see http://slrn.sourceforge.net/ for details.

First, add export NNTPSERVER="localhost" to your shellrc (.bashrc, .zshrc) and source it (source path/to/.shellrc).

Then run slrn --create to create the slrn config file, and lastly slrn -d to populate group names.

You’re now ready to run slrn! If the list is empty, press L (for list-groups) and enter * in the field for all groups. You might need to enter each group (pressing space) to get a proper count for how many (if any) unread messages there are.

pine/alpine

pine can read news; this http://www.chebucto.ns.ca/Help/News/PineNews.html might help. You can also read the FAQ from U Washington.

In Pine do

  1. ‘S’ for setup, ‘C’ for config, then
  2. set ‘NNTP Server (for news)’ to news.tilde.club
  3. Then go back to the main menu, and pick Folder List,
  4. A for add, ^t for list

Emacs

M-x gnus in [[[#emacs|emacs]]] can read news, but you better know [[[#emacs|emacs]]] first before you start.

lynx

Lynx reads news, a la lynx news://news.tilde.club/tilde.general. It can even post news, but you have to design your own headers.

tin

There is also tin.

tin works out of the box if your tilde host has a local news server installed. You can check with telnet tilde.name 119 on most.

Otherwise it is necessary to do export NNTPSERVER=news.tildeverse.org or run it with tin -r news.tildeverse.org to access the central news server.

When you first start tin it does not have any default newsgroups subscribed, either choose some that you know already or type S and select * to subscribe to all groups (there are only about 30). You can unsubscribe from some with u or use U to use a pattern. Usually you will not read control.* and junk.

Thunderbird

If you’re using Thunderbird for email, it can also be configured for news.

  1. Go to the Tools menu, -> Account Settings
  2. Under Account Actions click Add Other Account...
  3. Select “Newsgroup Account”
  4. Type in the name you and email address you want associated with your posts. This can be your real name and tilde.club email address, or any other name (like your tilde username) and any other email address.
  5. For the “Newsgroup Server” type news.tilde.club. Give it a name (“news.tilde.club” works fine), confirm a couple of times and you’re done! You should see a new entry for news.tilde.club in your accounts list.
  6. Right click on “news.tilde.club” in your accounts list and click Subscribe...
  7. You should see a dialog with a tree of news topics. Click one and click Subscribe to subscribe to the topic. When Thunderbird is running, it will periodically check for new messages to each of these topics. You will also see a list of topics in your accounts list with unread counts.
  8. To post to a topic, open the topic and click the “Write” button.

SeaMonkey

SeaMonkey (1) File -> New -> Account
SeaMonkey (2) Edit -> Mail & Newsgroups Account Settings
SeaMonkey (2) Click on New Account

The instructions for SeaMonkey are mostly the same as Thunderbird. The difference is that if you already created an account in SeaMonkey (whether for mail, RSS, or news), you create a new account by using either of the two options. Both of them will bring you to the Account Wizard.

  • Go to the File menu, -> New -> Account
  • Go to the Edit menu, -> Mail & Newsgroups Account Settings, -> Add Account...

Claws Mail

Setup

Claws Mail's New Account Preferences
  • If you have any draft messages open, close them or you will get an error in the next step.
  • In the "Configuration" menu, click "Create New Account..."
  • In the "Basic" settings:
    • Set the "Name of account" (optional).
    • In "Personal information", Set "Full name" and "Mail address". Set "Organization" (optional).
    • In "Server information", click the menu for "Protocol" and select "News (NNTP)".
    • Set "News server", enter nntp.tildeverse.org, or your other news server address as appropriate.
  • Set other settings as desired.

Connecting via a Proxy

Claws Mail's Proxy settings
  • If you need to access your tilde news via a proxy, you can do so in the account preferences as follows.
  • If not in the initial account creation, go to the account preferences from the "Configuration menu": If you are in the tilde folders already, choose "Preferences for current account..."; otherwise choose "Edit accounts...", select the account from the list, and click "Edit".
  • Go to the "Proxy" page.
  • Check "Use proxy server", and enter the appropriate details.
    • Note: to establish a proxy connection to your tilde server using SSH, you can the ssh -D option.
  • Click "OK".

Subscribing

Tilde News now shown in your Claws Mail folders
Claws Mail's Subscription window
Claws Mail now showing your subscribed newsgroups
  • After creating the account, it should appear as a folder in the main window.
  • Right-click the folder and choose "Subscribe to newsgroup..."
  • If you get an error, "Can't retrieve newsgroup list", try clicking "Refresh". Clicking "Refresh" must be done sometimes in case there are new groups available. If you still get an error, you may need to go back to the account settings and make appropriate adjustments. To debug the network connection you may want to check the network log: "Tools" menu -> "Network Log" (Shift+Ctrl+L).
  • Select the newsgroups you want to subscribe too. You can use the "Find groups" text box and "Search" button to search through the list of newsgroup names.
  • Click "OK".
  • The newsgroups you subscribed to will then appear in your folder list.
  • Eventually, the newsgroups will fill up with messages. You can trigger messages to be fetched from the "Message" menu -> "Receive" -> "Get from all accounts" (or the particular account name).

Writing and replying

Viewing a message in Claws Mail
  • Reply to news messages similarly as replying to email messages.
  • To start a new thread, go to the "Message" menu and select "Compose a news message".

Configuration for Tilde Servers

This Configuration assumes the usage of the INN software. Configuration details needed for peering are provided.

inn.conf - Basic configuration data for INN programs

Detailed configuration information found here: https://www.eyrie.org/~eagle/software/inn/docs-2.6/inn.conf.html 

The following settings must be configured:

organization: "Organization name"

What to put in the Organization: header if it is left blank by the poster.

pathhost: <fqdn>

What to put into the Path: header to represent the local site. This is added to the Path: header of all articles that pass through the system, including locally posted articles, and is also used when processing some control messages and when naming the server in status reports. There is no default value; this parameter must be set in inn.conf or INN will not start. A good value to use is the fully qualified hostname of the system.

domain: <hostname>

This should be the domain name of the local host. It should not have a leading period, and it should not be a full host address. It is used only if the inn_getfqdn() routine in libinn(3) cannot get the fully qualified domain name by using either the gethostname(3) or getaddrinfo(3) calls. The check is very simple; if either routine returns a name with a period in it, then it is assumed to have the full domain name. As this parameter is rarely used, do not use it to affect the righthand side of autogenerated Message-IDs; see instead virtualhost and domain in readers.conf(5). The default value is unset.

server: <>

This can be left unset, set to the hostname, or localhost.

The name of the default NNTP server. If nnrpdposthost is not set and UNIX domain sockets are not supported, nnrpd(8) tries to hand off locally-posted articles through an INET domain socket to this server. actsync(8), nntpget(8), and getlist(8) also use this value as the default server to connect to. In the latter cases, the value of the NNTPSERVER environment variable, if it exists, overrides this. The default value is unset.

incoming.conf - Configuration of incoming news feeds

Detailed configuration information here: https://www.eyrie.org/~eagle/software/inn/docs-2.6/incoming.conf.html

The following configuration should be present:

peer ME {
  hostname:         "localhost, 127.0.0.1, ::1"
}

And for each NNTP peer:

peer <name> {
  hostname:         "<fqdn>"
}

For example, it is expected all Tildeverse news servers would peer with new.tildeverse.org, and include the following:

peer tildeverse {
  hostname:         "news.tildeverse.org"
}

innfeed.conf - Configuration file for innfeed

Detailed configuration information here: <https://www.eyrie.org/~eagle/software/inn/docs-2.6/innfeed.conf.html>

For each NNTP peer:

peer <name>
{
    ip-name: <peer fqdn>
}

Note: the `<name>` should match the `<name>` field used in the *inncoming.conf* configuration above.

For example, it is expected all Tildeverse news servers would peer with new.tildeverse.org, and include the following:

peer tildeverse
{
    ip-name: news.tildeverse.org
}

newsfeeds - Determine where Usenet articles are sent

Detailed configuration information here: <https://www.eyrie.org/~eagle/software/inn/docs-2.6/newsfeeds.html>

The following configuration is required:

innfeed!\
        :!*\
        :Tc,Wnm*\
        :/usr/lib/news/bin/innfeed

For each NNTP peer include:

<name>\
      :*,!local,!local.*,!<localgroups>.*,!control,!control.*,!junk/!local\
      :Af,Ap,C20,G12,U5,<32768,Tm\
      :innfeed!

Where `<name>` matches the `<name>` fields using in *inncoming.conf* and *innfeed.conf* above. And, `<localgroups>` is replaced by any local newsgroups that should not be shared.

For example, it is expected all Tildeverse news servers would peer with new.tildeverse.org, and include the following:

tildeverse\
      :*,!local,!local.*,!<localgroups>.*,!control,!control.*,!junk/!local\
      :Af,Ap,C20,G12,U5,<32768,Tm\
      :innfeed!

Further example, for cosmic.voyage, to show the replacement of `<localgroups>`:

tildeverse\
      :*,!local,!local.*,!cosmic.*,!control,!control.*,!junk/!local\
      :Af,Ap,C20,G12,U5,<32768,Tm\
      :innfeed!

Since the cosmic.* newsgroups are only local to cosmic.voyage, they are restricted from being sent to NNTP peers, such as tildeverse in the above example.

server

This file contains a single line, which is the servers FQDN. For example:

tilde.team

newsgroups

Detailed configuration information may be found here: https://www.eyrie.org/~eagle/software/inn/docs-2.6/newsgroups.html

From the detail configuration information:

The file pathdb/newsgroups contains a list of newsgroups for which a short description is available. This file is generally updated by controlchan(8) whenever a control message is received; it is used by nnrpd in response to LIST NEWSGROUPS and is only meant to provide information to users. News readers often show the list of carried newsgroups along with these descriptions.  

It is not necessary that all the groups carried by the news server (that is to say all the groups listed in the active file) be listed in the newsgroups file. And it is also not necessary that all the groups listed in the newsgroups file be carried by the news server. Nonetheless, it is of course better if the active and newsgroups files have exactly the same newsgroups.  

If you use `ctlinnd newgroup` to manually create a group, only the active file is updated. You should then edit the newsgroups file in order to add a short description for the created group. The same goes for manually removing or changing the status of a newsgroup.  

Each line of the newsgroups file consists of two fields separated by at least one tabulation:  

<name>\t<description>

The first field is the name of the newsgroup. The second field is its description.  

After using `ctlinnd` to create each newsgroup that will be provided, this file may be edited to add the newsgroup name and a brief description.

Note: this file is only a reference, and does not provide any configurations for the INN software. The `ctlinnd` command must be used to create newsgroups.

For example:

tilde.cosmic            Tildeverse chat about cosmic.voyage

nntpsend.ctl - List of sites to feed via nntpsend

Detail configuration information may be found here: https://www.eyrie.org/~eagle/software/inn/docs-2.6/nntpsend.ctl.html

For each NNTP peer, the following must be included:

<host>:<fqdn>:2m:-t 180

For example, it is expected all Tildeverse news servers would peer with news.tildeverse.org, and include the following:

tildeverse:news.tildeverse.org:2m:-t 180

readers.conf - Access control and configuration for nnrp

Detail configuration information may be found here:  https://www.eyrie.org/~eagle/software/inn/docs-2.6/readers.conf.html

Recommended configuration is:

auth "localhost" {
  localaddress: "localhost, 127.0.0.1,,::1, stdin"
  default: "<localhost>"
}
access "localhost" {
  users: "<localhost>"
  newsgroups: "*,!junk,!control,!control.*"
  access: RPA
}