Kolab3: Hosting of multiple domains
We provide hosting of Kolab to our customers. Each customer owns at least one domain, and the customer is allowed to create new Email users and do his own administration. The customers have webmail access on one single URL, and login with their email address.
This works fine in the current Kolab2 environment, with our own ISP patches.
The task is now to make use of the new model of support for multiple domains in Kolab3, and to provide a solution that is as easy and compliant to the standard as possible.
Our work is based on these links:
- Kolab Administrator Guide: Hosted Kolab Groupware Setup
- Blog Post: http://bmts.us/wiki/doku.php?id=article:kolab:multidomain
- and various posts on the Kolab mailing lists
Our challenges were:
- to automate the configuration, and turn the manual steps from the documentation into scripts that can be called easily
- Login to a single Roundcube installation (one URL only) must be available to users with email addresses from several domains
- one customer owns several domains
- Still TODO: add a new domain from within the Kolab Webadmin Panel
The solution is like this, and the source code is available in a repository at Github:
- We have a script that is run initially once, and configures Kolab to be prepared for hosting multiple domains (initMultiDomain.sh)
- Patches for Roundcube and Syncroton have gone upstream and will be part of Kolab 3.1, but you can have a look at our patches for Kolab 3.0
- We have a php script (addDomain.php) which updates the kolab.conf with the new domain. This script should be run after the domain was added in the Kolab WebAdmin Panel. We will try to call this script from within the UI, in a next step. At the moment you have to run it from commandline: php addDomain.php <domainname> <ldap_password>, eg php addDomain.php mydomain.com secret
- We have a patch for Kolab Webadmin Panel (patchMultiDomainAdmins.patch) that will allow one customer to manage several domains.
- We have a patch for Kolab Webadmin Panel (domainQuota.patch) that makes sure that a domain admin can only assign a limited amout of space to the users of his domains.