Mail::Toaster::Setup

- NAME
- DESCRIPTION
- METHODS
- DEPENDENCIES
- AUTHOR
- SEE ALSO

# NAME

Mail::Toaster::Setup - methods to configure and build all the components of a modern email server.

# DESCRIPTION

The meat and potatoes of toaster_setup.pl. This is where the majority of the work gets done. Big chunks of the code and logic for getting all the various applications and scripts installed and configured resides in here.

# METHODS

All documented methods in this package (shown below) accept two optional arguments, verbose and fatal. Setting verbose to zero will supress nearly all informational and debugging output. If you want more output, simply pass along verbose=>1 and status messages will print out. Fatal allows you to override the default behaviour of these methods, which is to die upon error. Each sub returns 0 if the action failed and 1 for success.

     arguments required:
       varies (most require conf)

     arguments optional:
       verbose - print status messages
       fatal   - die on errors (default)

     result:
       0 - failure
       1 - success

new

  To use any methods in Mail::Toaster::Setup, you must create a setup object:

        use Mail::Toaster::Setup;
        my $setup = Mail::Toaster::Setup->new;

  From there you can run any of the following methods via $setup->method as documented below.

  Many of the methods require $conf, which is a hashref containing the contents of toaster-watcher.conf.

clamav

  Install ClamAV, configure the startup and config files, download the latest virus definitions, and start up the daemons.

config - personalize your toaster-watcher.conf settings

  There are a subset of the settings in toaster-watcher.conf which must be personalized for your server. Things like the hostname, where you store your configuration files, html documents, passwords, etc. This function checks to make sure these settings have been changed and prompts for any necessary changes.

       required arguments:
         conf

config_tweaks

  Makes changes to the config file, dynamically based on detected circumstances such as a jailed hostname, or OS platform. Platforms like FreeBSD, Darwin, and Debian have package management capabilities. Rather than installing software via sources, we prefer to try using the package manager first. The toaster-watcher.conf file typically includes the latest stable version of each application to install. This subroutine will replace those version numbers with with 'port', 'package', or other platform specific tweaks.

daemontools

  Fetches sources from DJB's web site and installs daemontools, per his instructions.

dependencies

        $setup->dependencies( );

  Installs a bunch of dependency programs that are needed by other programs we will install later during the build of a Mail::Toaster. You can install these yourself if you would like, this does not do anything special beyond installing them:

  gdbm, setquota, expect, maildrop, autorespond, qmail, qmailanalog, daemontools, openldap-client, Crypt::OpenSSL-RSA, DBI, DBD::mysql.

  required arguments: conf

  result: 1 - success 0 - failure

djbdns

  Fetches djbdns, compiles and installs it.

        $setup->djbdns( );

       required arguments:
         conf

       result:
         1 - success
         0 - failure

expect

  Expect is a component used by courier-imap and sqwebmail to enable password changing via those tools. Since those do not really work with a Mail::Toaster, we could live just fine without it, but since a number of FreeBSD ports want it installed, we install it without all the extra X11 dependencies.

ezmlm

  Installs Ezmlm-idx. This also tweaks the port Makefile so that it will build against MySQL 4.0 libraries if you don't have MySQL 3 installed. It also copies the sample config files into place so that you have some default settings.

        $setup->ezmlm( );

       required arguments:
         conf

       result:
         1 - success
         0 - failure

filtering

  Installs SpamAssassin, ClamAV, simscan, QmailScanner, maildrop, procmail, and programs that support the aforementioned ones. See toaster-watcher.conf for options that allow you to customize which programs are installed and any options available.

        $setup->filtering();

maillogs

  Installs the maillogs script, creates the logging directories (toaster_log_dir/), creates the qmail supervise dirs, installs maillogs as a log post-processor and then builds the corresponding service/log/run file to use with each post-processor.

        $setup->maillogs();

startup_script

  Sets up the supervised mail services for Mail::Toaster

              $setup->startup_script( );

  If they don't already exist, this sub will create:

              daemontools service directory (default /var/service)
              symlink to the services script

  The services script allows you to run "services stop" or "services start" on your system to control the supervised daemons (qmail-smtpd, qmail-pop3, qmail-send, qmail-submit). It affects the following files:

        $prefix/etc/rc.d/[svscan|services].sh
        $prefix/sbin/services

test

  Run a variety of tests to verify that your Mail::Toaster installation is working correctly.

# DEPENDENCIES

        IO::Socket::SSL

# AUTHOR

Matt Simerson - matt@tnpi.net

# SEE ALSO

The following are all perldoc pages:

     Mail::Toaster
     Mail::Toaster::Conf
     toaster.conf
     toaster-watcher.conf

     http://mail-toaster.org/