Installation Notes

System Requirements and Planning

A Linux system is required! Portability is not a priority at the moment. To estimate system requirements you need to know the maximum number of concurrent users you will have. A p3/1.3ghz can handle about 1500 concurrent broadband connections doing about 250 mbps. If you have dialup users you'll probably can handle 3000 concurrent connections. A modern 3ghz dual core system should be able to saturate a 1 gigabit line easy with 3-4000 connections.

Memory footprint is average to high. NNTPSwitch needs about 500k for each client and a shared space of about 30mb for roughly 65000 groups (60mb for 100k groups).

If you are running a local dreader to handle spoolservers performance is less of an issue because dreader will take up most resources.

Compiling

You should have Perl installed in your $PATH.

make
make install

make calls make config automatically. make config parses the nntpswitch.conf.in file and uses these values as defaults.

Currently the makefile needs the mysql-client, pgsql and libradius installed. If you don't want this you can comment this out in the Makefile.

If you run debian you can install all prerequisites except radius by issuing:

apt-get -u install libmcrypt-dev libldap2-dev libmysqlclient15-dev postgresql-dev

Installation

Create a directory /etc/nntpswitch or /usr/local/etc/nntpswitch (or whatever else is specified in config.c) and copy nntpswitch.conf, etc/access.conf etc/groups.conf etc/auth.conf and etc/overview.fmt to your /etc/nntpswitch directory.

mkdir /etc/nntpswitch
cp nntpswitch.conf-dist /etc/nntpswitch/nntpswitch.conf
cp etc/overview.fmt /etc/nntpswitch/
cp etc/servers.conf /etc/nntpswitch/
cp etc/access.conf /etc/nntpswitch/

Edit nntpswitch.conf, servers.conf and access.conf to match your configuration.

If you're finished run updategroups for the first time to create the active, newsgroups and active.times from the backend servers.

/usr/local/sbin/updategroups

To test all configuration you can run nntpswitch in test mode:

/usr/local/sbin/nntpswitchd -t

If everything looks ok, you can start it up with no parameters, or use the init.d script.

Statistics

You need to have Time::ParseDate installed in order for the Perl statistics script to work. See Statistics for details.

External Authentication Modules

Radius modules

The radius authorization and accounting modules depend on FreeBSD/Juniper libradius. The freeradius libradius does not work currently.

Download Download Libradius for Linux

You need to compile libmd first, then libradius. If you're running on a 64bit system add -fPIC to the CFLAGS variable in the makefile of both packages.

PostgreSQL and MySQL modules

The postgres module depends on libpq-fe. Mysql module depends on libmysqlclient. Both should be installed by your database development package.

Daily Operation

You should run statistics, rotate your logfiles, and update newsgroups lists at least once a day. It's recommended you run the nsstats.sh shell script from cron every 24hr. The nsstats.sh does the following things:

  • Rotate news.debug logfile by one. You could leave this to your logrotate daily and tune the timing of nsstats.sh accordingly.
  • Retrieve and merge latest active and newsgroups information using the updategroups command.
  • Create statistics using nsstats.pl
  • Execute any nsstats.sh.local script if found.

Also available in: HTML TXT