README
======

Biblio@Tech Net::FTPServer - A full-featured, secure, extensible
and configurable Perl FTP server.

The server was written as part of the Biblio@Tech Schoolmaster.net
project and was kindly released under the GNU General Public License
(GPL). 

Major features of Net::FTPServer include:

* Feature parity with wu-ftpd.
* IP-based and IP-less virtual hosting.
* Virtual filesystem allows the FTP server to serve files from a
  SQL database.
* Configurable and extensible in Perl.
* <Perl> sections in ftpd.conf file.
* Supports all the latest RFCs and Internet Drafts, including MLST,
  MLSD, FEAT, OPTS, LANG.
* Secure by design and implementation.
* PAM authentication.
* Resource limits.
* Run standalone or from inetd.
* Configurable server greetings and welcome messages.
* Anonymous mode.
* Run in chroot jail.
* Sophisticated access control rules.
* wu-ftpd style aliases and cdpath.
* SITE EXEC (disabled by default).
* Syslog logging.
* Set TCP parameters.

Missing features:

* Upload/download quotas.


PREREQUISITES
-------------

required:

  perl >= 5.00503

  IO               This is also normally included in the
                   basic Perl package, but make sure you
                   have a pretty recent version.

  IO::stringy      This is now required by the main server.
                   Make sure you have at least version 1.220
                   from CPAN which includes some important
                   bug fixes.

optional:

  Archive::Zip     If you want to allow users to create ZIP
                   files from directories on the fly (so-called
                   "archive mode"), you need this module.

  Authen::PAM      If you want to do PAM authentication (eg.
                   you have Red Hat Linux or Solaris).

  BSD::Resource    If you want resource limits to avoid certain
                   types of denial of service (DoS) attack.

  Compress::Zlib   If you want to allow users to create ZIP
                   files from directories on the fly (so-called
                   "archive mode"), you need this module.

  Digest::MD5      If you want the SITE CHECKSUM command
                   to work correctly.

  File::Sync       Needed for SITE SYNC command.

  bzip2            If an external "bzip2" program is available,
                   it can be used to create archives
                   automatically.

  gzip             If an external "gzip" program is available,
                   it can be used to create archives
                   automatically.

  uuencode         If an external "uuencode" program is
                   available, it can be used to create
                   uuencoded archives automatically.


INSTALLATION
------------

To compile:

	perl Makefile.PL
	make
	make test

To install (usually as root):

	make install

You can override where the configuration file will go
by specifying the SYSCONFDIR setting.  /etc is the default.
Or to avoid installing a configuration altogether use
"make NOCONF=1 install" instead.

The documentation should be automatically installed. Do:

	man Net::FTPServer

or if you don't have a working man pages system, do:

	pod2man lib/Net/FTPServer.pm | nroff -man | more

Read the section "INSTALLING AND RUNNING THE SERVER" to find out how
to change the configuration file to suit your local situation, and how
to start and stop the server.


CONFIGURATION AND DOCUMENTATION
-------------------------------

All other documentation is in the Net::FTPServer(3) man page. After
installation, type:

	man Net::FTPServer

and read the section "INSTALLING AND RUNNING THE SERVER".


SUPPORT AND MAILING LIST
------------------------

NOTE: the information below is still avtive, but please consider to
contact discussion forum on CPAN and/or github repositry first. 

There is a mailing list for general discussion and announcements.  See
the Savannah mailing list page for details:

https://savannah.nongnu.org/mail/?group=netftpserver

Bug reports, feature requests, and so on should be sent to the mailing
list.


CREDITS
-------

Copyright (C) 2000 Biblio@Tech Ltd., Unit 2-3, 50 Carnwath Road, London, SW6 3EG, UK.
Copyright (C) 2000-2003 Richard Jones <rich@annexia.org> and other contributors.

