=====================
 Installing Ingo 2.0
=====================

:Contact: ingo@lists.horde.org

.. contents:: Contents
.. section-numbering::

This document contains instructions for installing the Ingo Email Filter Rules
Manager.

For information on the capabilities and features of IMP, see the file README_
in the top-level directory of the IMP distribution.


Obtaining Ingo
==============

Ingo can be obtained from the Horde website and FTP server, at

   http://www.horde.org/ingo/

   ftp://ftp.horde.org/pub/ingo/

Or use the mirror closest to you:

   http://www.horde.org/mirrors.php

Bleeding-edge development versions of Ingo are available via Git; see the file
`horde/docs/HACKING`_, or the website http://www.horde.org/source/, for
information on accessing the Horde Git repository.


Prerequisites
=============

To function properly, Ingo **requires** the following:

1. A working Horde installation

   Ingo runs within the `Horde Application Framework`_, a set of common tools
   for Web applications written in PHP.  You must install Horde before
   installing Ingo.

   .. Important:: Ingo 2.0 requires version 4.0+ of the Horde Framework -
                  earlier versions of Horde will **not** work.

   .. _`Horde Application Framework`: http://www.horde.org/horde/

   The Horde Framework can be obtained from the Horde website and FTP server,
   at

      http://www.horde.org/horde/

      ftp://ftp.horde.org/pub/horde/

   Many of Ingo's prerequisites are also Horde prerequisites.

   .. Important:: Be sure to have completed all of the steps in the
                  `horde/docs/INSTALL`_ file for the Horde Framework before
                  installing Ingo.

2. The following PEAR modules:
   (See `horde/docs/INSTALL`_ for instructions on installing PEAR modules)

   a. Net_Sieve [OPTIONAL]

      Ingo uses the Net_Sieve class for communicating with timsieved running
      on Cyrus mail servers.  You will only need to install this class if you
      are using Sieve for filtering.

   b. Net_Socket [OPTIONAL]

      Net_Socket is used by Net_Sieve and, thus, is only requires if you will
      be using Sieve filtering.  PEAR *should* install Net_Socket when it
      installs Net_Sieve.


Installing Ingo
===============

Ingo is written in PHP, and must be installed in a web-accessible directory.
The precise location of this directory will differ from system to system.
Conventionally, Ingo is installed directly underneath Horde in the webserver's
document tree.

Since Ingo is written in PHP, there is no compilation necessary; simply expand
the distribution where you want it to reside and rename the root directory of
the distribution to whatever you wish to appear in the URL.  For example, with
the Apache webserver's default document root of ``/usr/local/apache/htdocs``,
you would type::

   cd /usr/local/apache/htdocs/horde
   tar zxvf /path/to/ingo-x.y.z.tar.gz
   mv ingo-x.y.z ingo

and would then find Ingo at the URL::

   http://your-server/horde/ingo/


Configuring Ingo
================

1. Configuring Horde for Ingo

   a. Register the application

      In ``horde/config/registry.php``, find the applications['ingo'] stanza.
      The default settings here should be okay, but you can change them if
      desired.  If you have changed the location of Ingo relative to Horde,
      either in the URL, in the filesystem or both, you must update the
      ``fileroot`` and ``webroot`` settings to their correct values.

2. Creating the database table

   The specific steps to create the Ingo database table depend on which
   database you've chosen to use.

   First, look in ``scripts/sql/`` to see if a script already exists
   for your database type.  If so, you should be able to simply execute that
   script as superuser in your database.  (Note that executing the script as
   the "horde" user will probably fail when granting privileges.)

   If such a script does not exist, you'll need to build your own, using the
   file ingo.sql as a starting point.  If you need assistance in creating
   databases, you may wish to let us know on the IMP mailing list.

3. Configuring Ingo

   Documentation on the format and purpose of the configuration files in the
   ``config/`` directory can be found in each file.  You may edit these files
   if you wish to customize Ingo's appearance and behavior.  The defaults will
   be correct for most sites.

   You must login to Horde as a Horde Administrator to finish the
   configuration of Ingo.  Use the Horde ``Administration`` menu item to get
   to the administration page, and then click on the ``Configuration`` icon to
   get the configuration page.  Select ``Filters`` from the selection list of
   applications.  Fill in or change any configuration values as needed.  When
   done click on ``Generate Filters Configuration`` to generate the
   ``conf.php`` file.  If your web server doesn't have write permissions to
   the Ingo configuration directory or file, it will not be able to write the
   file.  In this case, go back to ``Configuration`` and choose one of the
   other methods to create the configuration file ``ingo/config/conf.php``.

   If you want to disable any of the special rules like blacklist, vacation,
   or spam, you can lock the according preferences in
   ``ingo/config/prefs.php``.

   Note for international users: Ingo uses GNU gettext to provide local
   translations of text displayed by applications; the translations are found
   in the po/ directory.  If a translation is not yet available for your
   locale (and you wish to create one), see the ``horde/po/README`` file, or
   if you're having trouble using a provided translation, please see the
   `horde/docs/TRANSLATIONS`_ file for instructions.


Known Problems
==============

Some people experienced problems with Ingo's Sieve driver and Cyrus 2.1.12.
The "addflag/removeflag" Sieve commands can cause message copies sticking in
Cyrus' message queues producing "virtual memory exhausted" errors.  It was
reported that upgrading to version 2.1.15 has fixed this problem.


Obtaining Support
=================

If you encounter problems with Ingo, help is available!

The Horde Frequently Asked Questions List (FAQ), available on the Web at

  http://www.horde.org/faq/

The Horde Project runs a number of mailing lists, for individual applications
and for issues relating to the project as a whole.  Information, archives, and
subscription information can be found at

  http://www.horde.org/mail/

Lastly, Horde developers, contributors and users may also be found on IRC,
on the channel #horde on the Freenode Network (irc.freenode.net).

Please keep in mind that Ingo is free software written by volunteers.
For information on reasonable support expectations, please read

  http://www.horde.org/support.php

Thanks for using Ingo!

The Ingo team


.. _`horde/docs/HACKING`: ../../horde/docs/?f=HACKING.html
.. _`horde/docs/INSTALL`: ../../horde/docs/?f=INSTALL.html
.. _`horde/docs/TRANSLATIONS`: ../../horde/docs/?f=TRANSLATIONS.html
