	      _  ___        _                   _
	     / |/ _ \   ___| |_ ___ _ __  ___  | |_ ___
	     | | (_) | / __| __/ _ \ '_ \/ __| | __/ _ \
	     | |\__, | \__ \ ||  __/ |_) \__ \ | || (_) |
	     |_|  /_/  |___/\__\___| .__/|___/  \__\___/
		 		   |_|
                           _           _                             _ 
 _   _ ___  ___ _ __   ___| |_   _ __ (_)_ ____   ____ _ _ __   __ _| |
| | | / __|/ _ \ '_ \ / _ \ __| | '_ \| | '__\ \ / / _` | '_ \ / _` | |
| |_| \__ \  __/ | | |  __/ |_  | | | | | |   \ V / (_| | | | | (_| |_|
 \__,_|___/\___|_| |_|\___|\__| |_| |_|_|_|    \_/ \__,_|_| |_|\__,_(_)
                                                                       

1.  type ./configure or sh configure. Consider creating a
    "nntpcache" user id/group id prior to ./configure as the configure
    script will hunt down which uid/gid nntpcache is able to run under
    from likely candidates in /etc/passwd and /etc/group.

    ./configure --help will list various compile-time options. 
    Of particular interest may be --with-authinfo-{passwd,pipe,ldap,radius}
    If you want to use ldap, then you need to install the OpenLDAP
    library (see http://www.openldap.org, or your packages collection)
    first.
	
2.  Examine the file cf/nnconf.cf. These are the compile time variable
    definitions, all of which are probably better off being changed at runtime
    from the config file (nntpcache.config -- i.e AFTER install) -
    although the point in changing the configFile variable at runtime
    is of dubious utility ;)

    In particular, direct your attention to the overviewFmtInternal
    specification, which should be changed to that of your most
    frequently used NNTP upstream server. It is by default set to that
    used by most INN installations.

    Note that if you run ./configure again, your cf/nnconf.cf will
    be regenerated from cf/nnconf.cf.in, so you may want to edit
    the latter instead if you plan on hacking the source code
    with some regularity. 

    Examine cf/nconf.h. You shouldn't need to change anything except
    perhaps MAXCHILDREN (defaults to support for upto 256 concurrent
    clients, but you may want to increase this value if you expect to
    serve starving hoards).

3.  type 'gmake' (or whatever it is you need to run
    gnumake -- under linux, 'make' *is* gnumake, under solaris it's
    'gnumake' or 'gmake'). If you don't have gnumake, you can find it at your
    local GNU mirror site, see ftp.gnu.org:/pub/gnu/make

4.  NNTPCache should compile without hicup. If it doesn't, either defile the
    source and send in a patch or describe the problem to the nntpcache
    users' mailinglist (nntpcache-users@nntpcache.com). Then we will
    try and hack in support for your god damned standards breaking
    system configuration!

5.  (as root) run 'make install'.

6.  Edit nntpcache.{config,servers,access} to suit your network.
    
7.  Check that the cache directory (probably /usr/local/var/nntpcache/)
    was created correctly and that the partition in which it resides
    is has plenty of room. The cache directory should be owned by one
    of user/group {nntpcache,news,daemon,adm} and have mode 700
    (rwx--------) (although you can make this less restrictive if you
    desire).

8.  (as root) start up the nntpcache daemon. 

	'nntpcached -n'

    The -n flag tells nntpcached not to go into the background. This way
    you can see nntpcache log messages directly without having to
    read syslog. You can toggle full debugging on and off via CTRL-C (SIGINT).

    The master daemon will try and bind to port 119 (default NNTP port,
    unless you specified a different port with -b or in nntpcache.config)
    so it must be run as root.  That said, as soon as
    nntpcached has bound the port it drops ALL root privileges and
    runs as news.news (etc). nntpached will immediately listen for incoming
    NNTP & HTTP connections, seek out and collate newsgroups,
    active and active.times and overview.fmt files from all configured
    nntp servers. NNTP requests that occur during this initial collation
    phase will intentionally be held off. This initial phase can
    take a while!

9.  Start up a web-browser (one that supports tables) and point it at 
    the nntpcached http port i.e http://localhost:9119/ -- unless you
    changed the definition in nntpcache.config. Examine syslog. If you
    have *.debug turned on in your syslog.conf then you should notice
    a large volume of reports. If you can't see anything, then you
    probably haven't written the nntpcache.access (<http>) entry
    correctly.

10. telnet to localhost 119. You should get a response like this:

      200 my.sexy.net NNTPcache server V2.4b3 Jan 14 2001 ready (posting ok).

    If instead you get something like:

      502 You are not in the access file.

    Then you haven't written 'nntpache.access' correctly, or perhaps
    /etc/hosts.{allow,deny} if you enabled tcpwrapper support

11. try entering into a group:

      group comp.test

12. try obtaining some xovers:

      xover 33-34 (you will need to replace the numbers with an appropriate
                   article number as specified in the response given
                   to the group command)

13. try fetching an article:

      article 33

14. try fetching part of the active file

      list active news.*

15. Quit the telnet session. Check newscache directory. You should see 
    something like this:

$ ls -FCsa /var/nntpcache (or perhaps /usr/local/var/nntpcache)
total 3650
   6 ./                    1 cache.history.dir     1 localhost:120/
   1 ../                  31 cache.history.pag     3 nntp.world.net./
   2 cache.history      3604 cache.mmap            1 nntpcache.stats

16. Quit telnet. Check syslog. Start up a full-blown news-reader and see
    if you can make it break. Make sure caching is working correctly, by
    fetching the same articles twice (check the headers). Make sure that
    multiple servers have been chosen correctly by flipping between
    appropriate groups.

17. Add a call to your rc files to start up nntpcached, or to your
    inittab. You will need to use the "-n" (no detach) flag for inittab.
    If you have perl5, consider writing a crontab entry to feed your
    news syslog files into innreport.sh. This will generate additional
    statistics.

18. subscribe to the nntpcache-users mailing-list
    (nntpcache-users-request@nntpcache.com or see
     http://www.nntpcache.com/cgi-bin/mailman/listinfo/nntpcache-users)
     and chew the fat with your godly brethren.

19. If you find yourself suffering, nntpcache performs *extensive*
    logging by default at syslog level debug. (you may need to modify
    /etc/syslog*.conf to see it). You can also force nntpcache to produce
    truely horrible amounts of dugging information with kill -INT
