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. Memory footprint is average to high. NNTPSwitch needs about 350k for each client and a shared space of about 20mb for roughly 65000 groups (35mb for 100k groups).
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.
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/access.conf /etc/nntpswitch/ cp etc/auth.conf /etc/nntpswitch/ cp etc/profiles.conf /etc/nntpswitch/
Edit nntpswitch.conf, access.conf and groups.conf to match your configuration. If you're finished run updategroups for the first time to retrieve the active, newsgroups and active.times from the backend servers.
You need to have Time::ParseDate installed in order for the Perl statistics script to work.
Once you have build a server configuration you can test the configuration by running the updategroups command:
/usr/local/sbin/updategroups
To test all AAA configuration run nntpswitch in test mode:
/usr/local/sbin/nntpswitchd -t
If it's ok you can start it up with no parameters or use the init.d script.
To install all available extra modules (currently only Radius, PostgreSQL and MySQL) type:
make more make install
The radius authorization and accounting modules depend on FreeBSD/Juniper libradius. The freeradius libradius does not work. To make only the radius module type:
make radius make install
Download libradius for Linux
The postgres module depends on libpq-fe. Mysql module depends on libmysqlclient. Both should be installed by your database development package.
To install one or both type:
make radius make mysql make install
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.
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.