====================
 Installing Nag 3.0
====================

:Contact: nag@lists.horde.org

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

This document contains instructions for installing the Nag web-based todo list
application on your system.

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


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

To function properly, Nag requires the following:

1. A working Horde installation.

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

   .. Important:: Nag 3.0 requires version 4.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 Nag. Many of Nag's prerequisites are also
                  Horde prerequisites. Additionally, many of Nag's optional
                  features are configured via the Horde install.

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

2. SQL support in PHP *or* a configured Kolab Server.

   Nag will store its data in either an SQL database or on a Kolab Server.
   If you use SQL, build PHP with whichever SQL driver you require; see the
   Horde INSTALL_ file for details.


Installing Nag
==============

There are several ways to install Nag. The recommended way to install Nag
is using the PEAR installer. Alternatively it can be installed from
tarballs. Finally, if you want to run the latest development code, or get the
latest, not yet released, fixes, you can install Nag 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 Nag through PEAR now, the installer will automatically install
any dependencies of Nag too. If you want to install Nag 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/nag

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

   pear install horde/nag

If you want to install Nag 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/nag


Configuring Nag
===============

1. Configuring Horde for Nag

   Nag requires a permanent ``Shares`` backend in Horde to manage tasklists and
   to add tasks to tasklists.  If you didn't setup a Share backend yet, go to
   the configuration interface, select Horde from the list of applications and
   select the ``Shares`` tab. Unless you are using Kolab, you should select
   ``SQL``. Make sure that you ran the necessary scripts to create a storage
   backend for the Share system, e.g. one of the ``create.*.sql``.

2. Configuring Nag

   You must login to Horde as a Horde Administrator to finish the configuration
   of Nag.  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 ``Tasks`` from the selection list of
   applications.  Fill in or change any configuration values as needed.  When
   done click on ``Generate Tasks Configuration`` to generate the ``conf.php``
   file.  If your web server doesn't have write permissions to the Nag
   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 ``nag/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 Nag's
   appearance and behavior. See the header of the configuration files for
   details and examples. The defaults will be correct for most sites.

3. 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
   Nag row of the configuration screen.

   Alternatively you creating the Nag 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 nag

4. Testing Nag

   Use Nag to create, modify, and delete tasks. Test at least the following:

   - Creating a new task
   - Modifying a task
   - Completing a task
   - Deleting a task


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

If you encounter problems with Nag, help is available!

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

  http://wiki.horde.org/FAQ

Horde LLC 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 Nag is free software written by volunteers.  For
information on reasonable support expectations, please read

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

Thanks for using Nag!

The Horde team


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