==========================
 Installing Kronolith 2.0
==========================

:Last update:   $Date: 2005/02/03 15:04:40 $
:Revision:      $Revision: 1.16.10.2 $
:Contact:       kronolith@lists.horde.org

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

This document contains instructions for installing the Kronolith web-based
calendar application on your system.

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


Obtaining Kronolith
===================

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

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

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

Bleeding-edge development versions of Kronolith are available via CVS; see the
file `horde/docs/HACKING`_ in the Horde distribution for information on
accessing the Horde CVS repository.


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

To function properly, Kronolith requires the following:

1. A working Horde installation.

   Kronolith runs within the `Horde Application Framework`_, a set of common
   tools for Web applications written in PHP.  You must install Horde before
   installing Kronolith.  You must use a version of Horde 3.0 or greater.

   .. _`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 Kronolith'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 Kronolith.

2. MCAL or SQL support in PHP.

   Kronolith store its data either using the MCAL extension, or in an SQL
   database.  Build PHP either ``--with-mcal`` or with whichever SQL driver
   you require; see the Horde `horde/docs/INSTALL`_ file for more details on
   using databases with Horde.

   If you are using MCAL, and don't have support for it in PHP already, here
   are instructions for compiling libmcal and PHP.  Make sure to use libmcal
   0.7 and libmcal drivers 0.9, or later.

   .. Note:: There are RPMs for libmcal and a libmcal-aware PHP if you use
             RedHat.  You can get these from the Horde site:
             ftp://ftp.horde.org/pub/RPMS/.

   Check out libmcal from CVS (leave Password blank)::

   $ cvs -d :pserver:anonymous@cvs.libmcal.sourceforge.net:/cvsroot/libmcal login
   $ cvs -d :pserver:anonymous@cvs.libmcal.sourceforge.net:/cvsroot/libmcal co libmcal

   Check out icap and mstore from CVS, **under** libmcal::

   $ cd libmcal
   $ cvs co icap mstore

   Compile::

   $ cd icap
   $ make
   $ cd ../mstore
   $ make
   $ cd ..
   $ ./configure --with-icap --with-mstore
   $ make; make install

   additionally copy ``*.h`` to ``/usr/local/mcal/include``

   ::

   $ mkdir /var/calendar
   $ chmod 1777 /var/calendar

   Then configure and build PHP with ``--with-mcal=/usr/local/mcal``.

   Make the mstore password file ``/etc/mpasswd`` with the ``htpasswd``
   program from Apache.  For the first time use::

   $ htpasswd -c /etc/mpasswd username

   and for adding more users don't use the -c switch

   You only need one username to run kronolith.  The calendars for the
   different horde users are managed automatically.


Installing Kronolith
====================

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

Since Kronolith 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/kronolith-x.y.z.tar.gz
   mv kronolith-x.y.z kronolith

and would then find Kronolith at the URL

   http://your-server/horde/kronolith/


Configuring Kronolith
=====================

1. Configuring Horde for Kronolith

   a. Register the application

      In ``horde/config/registry.php``, find the ``applications['kronolith']``
      stanza.  The ``show`` parameter should already be marked ``=> true``.
      If you have changed the location of Kronolith relative to Horde, either
      in the URL or in the filesystem or both, you must update the
      ``fileroot`` and ``webroot`` settings to their correct values.

   b. Configuring a DataTree backend

      Kronolith requires a permanent ``DataTree`` backend in Horde to manage
      calendars and to add events to calendars.  If you didn't setup a
      DataTree backend yet, go to the configuration interface, select Horde
      from the list of applications and select a driver different than
      ``None`` on the ``DataTree System`` tab.  Make sure that you ran the
      necessary scripts to create a storage backend for the DataTree system,
      e.g. one of the ``create.*.sql`` or ``horde_datatree.*.sql`` SQL scripts
      in ``horde/scripts/sql/``.  You should have done this already during the
      installation of Horde.

2. Creating the database table [Only if you are using SQL, not libmcal]

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

   First, look in ``scripts/drivers/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 kronolith.sql as a starting point.  If you need assistance in creating
   databases, you may wish to let us know on the Kronolith 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 Kronolith.

   To configure Kronolith, 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

   Documentation on the format of those files can be found in each file; open
   each in an editor and make changes as suggested within.  The default values
   are reasonable, but may not be appropriate for your site, so it is best to
   check them before preceeding.

   You must login to Horde as a Horde Administrator to finish the
   configuration of Kronolith.  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 ``Calendar`` from the selection
   list of applications.  Fill in or change any configuration values as
   needed.  When done click on ``Generate Calendar Configuration`` to generate
   the ``conf.php`` file.  If your web server doesn't have write permissions
   to the Kronolith 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
   ``kronolith/config/conf.php``.

   Note for international users: Nag 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 Kronolith

   Use Kronolith to create, modify, and delete events. Test at least the
   following:

   - Creating a new event
   - Creating a recurring event
   - Modifying an event
   - Deleting an event


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

If you encounter problems with Kronolith, 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 also make occasional
appearances on IRC, on the channel #horde on the freenode Network
(irc.freenode.net).

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

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

Thanks for using Kronolith!

The Horde team


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