======================
 Installing Hermes H5
======================

:Contact: horde@lists.horde.org

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

This document contains instructions for installing the Hermes time-tracking
application.

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


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

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

1. A working Horde installation.

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

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

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

2. The following PHP capabilities:

   a. SQL support

      Hermes stores its data in an SQL database. Build PHP with whichever SQL
      driver you require; see the `horde/docs/INSTALL`_ file for details.

3. A working Turba installation.

   Hermes queries the clients API for client listings. This API is usually
   provided by Turba_. It doesn't matter what type of address book is
   configured for clients, but it is a good practice to create one which is
   separate from the rest of your contacts, see
   http://wiki.horde.org/HermesAddressBook.

   Which addressbook Hermes uses for clients is configured in Turba's setup.

   You can replace Turba with any application providing the
   clients/listClients API method. Check the `Horde Wiki`_ or ask on the
   `mailing list`_ for details.

.. _Turba: http://www.horde.org/apps/turba
.. _`Horde Wiki`: http://wiki.horde.org/
.. _`mailing list`: `Obtaining Support`_

The following items are not required, but are recommended:

1. Applications providing cost objects.

   Other applications can supply cost objects to track time against.

   Currently, Whups_ (the ticket-tracking system) and Nag_ (the tasklist
   manager) will export their tickets as possible cost objects. If you
   configure an additional attribute for your ticket types in Whups and make
   its name "Estimated Time", Whups will also be able to export estimates on
   the tickets, allowing Hermes to indicate the ticket's percentage
   complete. Estimation times from Nag will be exported automatically too.

.. _Whups: http://www.horde.org/apps/whups
.. _Nag: http://www.horde.org/apps/nag


Installing Hermes
===================

There are several ways to install Hermes. The recommended way to install Hermes
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 Hermes 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 Hermes through PEAR now, the installer will automatically
install any dependencies of Hermes too. If you want to install Hermes 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/hermes

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

   pear install horde/hermes

If you want to install Hermes 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/hermes


Installing from Release Tarballs
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. Important:: As of today, there are no tarballs released for Hermes 2
               yet. Please use the `Installing with PEAR`_ method to install
               Hermes 2.

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

   http://www.horde.org/apps/hermes

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

Or use the mirror closest to you:

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

Hermes 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, Hermes is installed directly underneath Horde in the
web server's document tree.

Since Hermes 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 web server's default document root of
``/usr/local/apache/htdocs``, you would type::

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

and would then find Hermes at the URL::

   http://your-server/horde/hermes/


Configuring Hermes
==================

1. Configuring Hermes

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

2. Creating the database tables

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

   Alternatively you creating the Hermes 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 hermes

3. Testing Hermes

   Use Hermes to enter time-tracking data. Test at least the following:

   - Adding job types as an administrator.
   - Adding deliverables as an administrator.
   - Creating time entries for a client, job type, and deliverable.
   - Search for time entries.
   - Submit time entries.


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

If you encounter problems with Hermes, 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 Hermes is free software written by volunteers.
For information on reasonable support expectations, please read

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

Thanks for using Hermes!

The Hermes team


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