DIY: Get the Horde Groupware suite up and running

Horde Groupware is a free collaboration suite that makes perfect sense for DIYers. Jack Wallen helps you through Horde Groupware's tricky install and configuration process.

One of my favorite tasks is finding tools to help people save money. Naturally, the world of open source is the first place I look for cost savings, and it almost always delivers. I recently discovered a groupware suite that meets both of those requirements.

Horde Groupware consists of email, calendar, contacts, tasks, and notes. It's available for Linux, Windows, and Mac and offers these features:

  • Public and shared resources (calendars, address books, tasklists, and notepads)
  • Unlimited resources per user
  • Translated into 41 languages
  • Global categories
  • Customizable portal screen (including applets for weather, quotes, etc.)
  • 25 included themes
  • Online help system
  • Import and export of groupware data from other applications
  • Synchronization with mobile phones and groupware clients
  • Integrated user management, group support, and permissions system
  • User preferences with global default values
  • Platform independent, works on any web server with PHP support (i.e., Linux, Windows, Solaris, Mac OS X Server)
  • Database driven

Installing Horde

Horde's installation process isn't as simple as it is for some groupware server suites. For this tutorial, I show how to install Horde on a Linux Apache MySQL PHP (LAMP) server; more specifically, the distribution will be Ubuntu 11.04. Once you see how this is done, it should be fairly easy to translate the instructions to your platform of choice.

To use the aptitude installer for the installation, open a terminal window and issue the command:

sudo aptitude horde3

The command will install quite a number of packages, all of which are necessary for Horde. Once the installation is complete, it's time to move on to the configuration of Horde, which will eventually lead to the web-based setup.

Configuring Horde

This is where things get a bit tricky. The first step is to configure Apache for Horde. Open the file /etc/apache/site-enabled/000-default and add:

Alias /horde3 /usr/share/horde3

<Directory /usr/share/horde3>

Options FollowSymLinks

AllowOverride Limit

deny from all

allow from YOUR_IP


<Files ~ "\.(inc|bak)$">

deny from all


before the </VirtualHost> tag. Save and close that file.

If you go to http://ADDRESS_OF_SERVER/horde3 (where ADDRESS_OF_SERVER is the server's actual address), an error will appear informing you that the web-based configuration tool has been disabled. To enable this tool, simply remove the "exit (0)" directive and the echo line near the top of the /etc/hord/horde3/conf.php file. Once that is removed, the web-based setup can be completed. Now the configuration files must be prepared, in order to give Horde write access to them. To do this, issue the following commands:

  • sudo chmod 777 /etc/horde/horde3/conf.php
  • sudo touch /etc/horde/horde3/conf.bak.php
  • sudo chmod 777 /etc/horde/horde3/conf.bak.php

Before you continue, create a log file (in case troubleshooting is necessary) with these commands:

  • sudo touch /var/log/horde/horde3.log
  • sudo chown root.www-data /var/log/horde/horde3.log
  • sudo chmod 770 /var/log/horde/horde3.log

Creating the database

Before you can use the web tool, you must create a database. Horde comes with a sample database that can be injected with the following command:

gunzip < /usr/share/doc/horde3/examples/scripts/sql/create.mysql.sql.gz

| mysql -u MYSQL_ADMIN -p

(where MYSQL_ADMIN is the MySQL admin user). You will need to know the MySQL admin password for this to work.

Once the above command completes, it is time to log in to the web-based tool (Figure A) and finish the installation. Figure A

In order to get to this screen, you may have to click the Horde version link on the first page you are shown upon logging in. (Click the image to enlarge.)

It is critical that the first thing you do is create an admin password. You'll need to click the Authentication tab in the setup screen and then enter the new password in the section labeled The Password To Use For The User's Credentials. After you've done that, click the Generate Horde Configuration button, and you're ready to go.

There are a lot more configuration options available for Horde, which I'll examine in a later post. For now, you should have a working Horde Groupware server up and running and ready to serve up your small business or non-profit.