NNTP Forum

A modern frontend to newsgroups

Overview

Newsgroups often have a somewhat aged appearance. This often makes them unattractive for younger people that only know forums or newer stuff. The NNTP Forum tries to give newsgroups a more modern appearance to make them more usable for young people. You can read the full story behind the frontend at my blog.

Here's a short overview of what the NNTP Forum features:

This is the basic stuff. Right now the forum is optimized for the environment of my university. Therefore the authorization of users is handled in an unusual way:

Ok, now to the technical stuff:

Requirements

The frontend is currently only tested with INN 2.5.2 (InterNetNews NNRP server).

Download and installation

  1. Download and extract or checkout the project at GitHub.com. Direct download link.
  2. The file site.conf is a template for an Apache2 virtual host. However you need to customize it for your setup:
    • Replace the default path /srv/sites/news.example.com with the path you put the files to.
    • Configure the authentication backend by setting the AuthBasicProvider directive. You can use whatever auth backend you want but by default the NNTP forum uses the supplied HTTP authentication for the NNTP connection to the newsgroup. So it's best to use the same authentication backend for the frontend you already use for your NNTP server. A list of Apaches authentication providers can be found in the Apache2 documentation under Authentication, Authorization and Access Control.

      If you want a public frontend you can remove the authentication configuration. However you need the change the NNTP user and password in config.php to the user that should be used by the NNTP connection.

  3. Customize the include/config.php file. At least set the following options:
    • Put the connection data to your NNTP server into nntpuri
    • Update the domain names used by the sender_address and sender_is_self functions.
  4. The cache and unread-tracker directories need to be writable by the webserver. The frontend will use these directories for temporary data and to keep track what the users already red.
  5. Activate the cronjob cron-jobs/clean-expired-trackers.php. On Debian based systems this can be done by creating a symbolic link to clean-expired-trackers.php in the directory /etc/cron.daily. The cronjob needs the PHP5 command line interface to run (the php5-cli package).

That should do the job. Not as easy as it could be. Sorry for that.

If you have any trouble send me a mail or leave a comment on my my weblog.

Feedback

Comments and ideas are always welcome. Please post a comment on my weblog or send me a mail to stephan.soller@helionweb.de.

The MIT License

Copyright (c) 2011 Stephan Soller <stephan.soller@helionweb.de>.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.