=======================
 Installing Hermes 1.0
=======================

:Last update:   $Date: 2008/06/29 22:03:03 $
:Revision:      $Revision: 1.13 $

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


Obtaining Hermes
================

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

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

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

Or use the mirror closest to you:

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

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


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 1.0 requires version 3.2+ 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 Hermes'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 Hermes.

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/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/whups/
.. _Nag: http://www.horde.org/nag/


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

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 Horde for Hermes

   a. Register the application

      In ``horde/config/registry.php``, find the ``applications['hermes']``
      stanza. The default settings here should be okay, but you can change
      them if desired. If you have changed the location of Hermes 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 tables

   The specific steps to create Hermes's database tables 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 ``hermes.sql`` as a starting point.  If you need assistance in
   creating database tables, you may wish to let us know on the Hermes mailing
   list.

   You will also need to make sure that the "horde" user in your database has
   table-creation privileges, so that the tables that `PEAR DB`_ uses to
   provide portable sequences can be created.

   .. _`PEAR DB`: http://pear.php.net/DB

3. Configuring Hermes

   To configure Hermes, change to the ``config/`` directory of the installed
   distribution, and make copies of all of the configuration ``dist`` files
   without the ``dist`` suffix::

      cd config/
      for foo in *.dist; do cp $foo `basename $foo .dist`; done

   Or on Windows::

      copy *.dist *.

   Documentation on the format and purpose of those files can be found in each
   file. You may edit these files if you wish to customize Hermes's appearance
   and behavior.

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

   Note for international users: Hermes 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.

4. 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://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 Hermes is free software written by volunteers.
For information on reasonable support expectations, please read

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

Thanks for using Hermes!

The Hermes team


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