Installation Notes¶
- Installation Notes
- System Requirements and Planning
- Compiling
- Installation
- Statistics
- External Authentication Modules
- Radius modules
- PostgreSQL and MySQL modules
- Daily Operation
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.