Horde
Status
17.06.2007: I no longer use any of the Horde web applications, therefore I do not update this page any longer. Nevertheless, I think the project is pretty cool and I might come back to it one day, so I keep this page around for possible future reference.
Debian packages
The following Debian packages need to be installed:
imp4 turba2 kronolith2 nag2
All these packages are for Horde web applications. The basic Horde package(s) are installed as automatic dependencies.
Configuration
File system modifications
Later, during Web configuration, some files in /etc/horde are going to be modified, therefore these files need to be writable by the user www-data.
for application in horde3 imp4 turba2 kronolith2 nag2 do cd /etc/horde/$application touch conf.php.bak chown www-data conf.php conf.php.bak done
MySQL
According to the documentation of Horde, the following directory should exist and contains the SQL scripts necessary to create the required database tables:
/usr/share/horde3/scripts/sql
For some reason, the Debian packages do not contains this directory. I had to manually download and install the following SQL script files:
http://cvs.horde.org/horde/scripts/sql/create.mysql.sql http://cvs.horde.org/nag/scripts/sql/nag.sql http://cvs.horde.org/kronolith/scripts/sql/kronolith.mysql.sql
Notes:
- the script create.mysql.sql creates the database horde as well as the user that will be used to access the database; before executing the script, load it in an editor and change the password
- execute the other scripts while having selected the database horde (i.e. say "use horde;")
PHP configuration
imp requires the PHP module IMAP. Although the module's Debian package is installed as a dependency, the module itself is not activated. This has to be done manually.
Edit the file
/etc/php4/apache/php.ini
and add the following line at the end
extension=imap.so
Finally, restart Apache to activate the module:
apachectl stop apachectl start
Apache integration
Add the following block to the Apache configuration (/etc/apache2/conf.d/osgiliath.conf on my system):
Alias /horde3/ /usr/share/horde3/ <Directory /usr/share/horde3/> Require all granted Options FollowSymLinks Includes <IfModule mod_php4.c> php_admin_flag engine on php_value upload_max_filesize 10M </IfModule> </Directory>
Obviously, Apache needs to be restarted now:
apache2ctl graceful
Configure the IMP application
The following file needs to be modified
/etc/horde/imp4/servers.php
All existing example configurations must be commented. Instead, the following new configuration needs to be inserted. Notes:
- most of the settings can be copied from the IMAP example configuration
- important settings are the folders and protocol options (the latter because we might wish to change it to something else than "no TLS" in the future)
$servers['imap_osgiliath'] = array( 'name' => 'osgiliath IMAP server', 'server' => 'localhost', 'hordeauth' => false, 'protocol' => 'imap/notls', 'port' => 143, 'folders' => 'INBOX.', 'namespace' => '', 'maildomain' => 'example.com', 'smtphost' => 'localhost', 'smtpport' => 25, 'realm' => '', 'preferred' => '', 'dotfiles' => false, 'hierarchies' => array() );
Configure the Turba application
The following file needs to be modified
/etc/horde/turba2/sources.php
All existing example configurations must be commented. Instead, the following new configuration needs to be inserted. Notes:
- most of the settings can be copied from the LDAP example configuration
- important settings are the folders and protocol options (the latter because we might wish to change it to something else than "no TLS" in the future)
$uid = Auth::getBareAuth(); $basedn = 'dc=herzbube,dc=ch'; $cfgSources['ldap_osgiliath'] = array( 'title' => _("osgiliath LDAP server"), 'type' => 'ldap', 'params' => array( 'server' => 'localhost', 'tls' => false, 'root' => 'ou=addressbook,' . $basedn, 'bind_dn' => 'cn=' . $uid . ',ou=users,' . $basedn, 'bind_password' => Auth::getCredential('password'), 'dn' => array('cn', 'uid'), 'objectclass' => array('top', 'person', 'inetOrgPerson', // 'calEntry', 'organizationalPerson'), 'charset' => 'utf-8', 'version' => 3 ), 'map' => array( '__key' => 'dn', 'name' => 'cn', 'firstname' => 'givenName', 'lastname' => 'sn', 'email' => 'mail', 'homeStreet' => 'street', 'homePostalCode' => 'postalCode', 'homeCity' => 'l', 'homePhone' => 'homePhone', 'workPhone' => 'workPhone', 'cellPhone' => 'mobile', 'fax' => 'workFax', 'notes' => 'description', 'website' => 'homepage', 'nickname' => 'nickName', // These are not stored on the LDAP server. 'pgpPublicKey' => 'object_pgppublickey', 'smimePublicKey' => 'object_smimepublickey' ), 'search' => array( 'name', 'email', 'homeStreet', 'homeCity' ), 'strict' => array( 'dn', ), 'public' => true, 'readonly' => true, 'admin' => array($uid), 'export' => true );
Web browser configuration
Point your web browser at
http://osgiliath/horde3/
The errors displayed in the left sidebar can be safely ignored (they refer to /etc/horde/imp4/prefs.php).
Horde's standard configuration is to automatically log you in as Administrator. This allows you to immediately start changing the configuration:
- select Administration (in the top right corner) -> Setup -> Horde (from the list of applications)
- on the following screen, a gazillion options are available for configuration, distributed across several tabs; for starters, it is Ok to click the link "Generate Horde configuration"
As an alternative, the following settings can be made right now:
- General
- Cookie path = /horde3
- Authentication
- Administrator user = patrick
- Backend to use for authentication = Let a horde application do it
- Application = imp
- Preference System
- Driver = SQL Database (so that users can change their preferences)
- DataTree System
- Backend = SQL Database (is used by the Nag application, possibly also by others)
- Problem Reporting
- Email = herzbube@herzbube.ch
The IMP application can now be configured in the same way as the Horde application:
- External Utilities and Menu
- GPG path = /usr/bin/gpg
- Location of root certificates bundle = ???
- Mail Server
- Cache Folder List = yes (the effect of this is: if a client other than IMP changes the folder list while you are logged in to IMP, the change will be shown by IMP only after you log out and log back in)
- Mailbox and Fetchmail
- Display Colors for Messages from other accounts = yes
- Other settings
- Mail Logging = false
Thurba application:
- Name of client addressbook = ldap_osgiliath (or whatever was chosen as the key in sources.php)
- Cache results = true
Nag application
- No changes necessary, defaults are OK
Kronolith application
- Server name from which emails are sent = herzbube.ch
- Email address from which emails are sent = kronolith@herzbube.ch