=====================
 Installing Ingo 3.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 Ingo, see the file README_
in the top-level directory of the Ingo distribution.


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 3.0 requires version 5.0+ of the Horde Framework -
                  earlier versions of Horde will **not** work.

   .. Important:: Be sure to have completed all of the steps in the
                  `horde/docs/INSTALL`_ file for the Horde Framework before
                  installing Ingo. Many of Ingo's prerequisites are also Horde
                  prerequisites. Additionally, many of Ingo's optional features
                  are configured via the Horde install.

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

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

   .. Important:: If you are going to install Ingo the recommended way,
                  i.e. using the PEAR installer, you can skip the remainder of
                  this section. Installing Ingo through PEAR will
                  automatically download and install all required 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.


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

The **RECOMMENDED** way to install Ingo is using the PEAR installer.
Alternatively, if you want to run the latest development code or get the
latest not yet released fixes, you can install Ingo from Git.

Installing with PEAR
~~~~~~~~~~~~~~~~~~~~

First follow the instructions in `horde/docs/INSTALL`_ to prepare a PEAR
environment for Horde and install the Horde Framework.

When installing Ingo through PEAR now, the installer will automatically install
any dependencies of Ingo too. If you want to install Ingo with all optional
dependencies, but without the binary PECL packages that need to be compiled,
specify both the ``-a`` and the ``-B`` flag::

   pear install -a -B horde/ingo

By default, only the required dependencies will be installed::

   pear install horde/ingo

If you want to install Ingo even with all binary dependencies, you need to
remove the ``-B`` flag. Please note that this might also try to install PHP
extensions through PECL that might need further configuration or activation in
your PHP configuration::

   pear install -a horde/ingo

Installing from Git
~~~~~~~~~~~~~~~~~~~

See http://www.horde.org/source/git.php


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

1. Configuring Ingo

   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``.

   Documentation on the format and purpose of the other configuration files in
   the ``config/`` directory can be found in each file. You may create
   ``*.local.php`` versions of these files if you wish to customize Ingo's
   appearance and behavior. See the header of the configuration files for
   details and examples. The defaults will be correct for most sites.

   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.local.php``.

2. Creating the database table

   Once you finished the configuration in the previous step, you can create all
   database tables by clicking the ``DB schema is out of date.`` link in the
   Ingo row of the configuration screen.

   Alternatively you creating the Ingo database tables can be accomplished with
   horde's ``horde-db-migrate`` utility.  If your database is properly setup in
   the Horde configuration, just run the following::

      horde/bin/horde-db-migrate ingo


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://wiki.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/community/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/community/support

Thanks for using Ingo!

The Ingo team


.. _README: README
.. _`horde/docs/INSTALL`: ../../horde/docs/INSTALL
.. _`horde/docs/TRANSLATIONS`: ../../horde/docs/TRANSLATIONS
