roundcube's picture

Update 1.0.1 released

This is the first service release to update the stable version 1.0. It contains
some important bug fixes and improvements, mainly a fix for the unintentional
redirect from the compose page in Google Chrome which started to happen after
a recent Chrome update.

It’s considered stable and we recommend to update all productive installations
of Roundcube with this version. Download it from,
see the full changelog here.

Please note that the update includes a small database schema change so make sure
you run the update script.

DSP3's picture

Integrating ejabberd with Kolab

Kolab is an excellent open source messaging and collaboration suite, the installation of which I discussed in a previous post.

Currently, there is one feature missing from the Kolab suite and that is the ability to send instant messages (IM) between authenticated Kolab users or even outside of the domain. This is where ejabbered comes in. The following is a summary of how you can integrate ejabberd into a Kolab system running on CentOS 6.5

As Kolab is already installed, there is no need to add the EPEL repository used to host the ejabbered .rpm installer. Installation is as simple as:

sudo yum install ejabberd

Ejabbered is written in Erlang and is configured by editing /etc/ejabbered/ejabberd.cfg

sudo nano /etc/ejabberd/ejabberd.cfg

Search for the following code and edit accordingly:

%%{auth_method, internal}.

change to

{auth_method, ldap}.

Search for the remaining lines of code ('ctrl' + 'w' in nano) and change them to fit your environment:

{ldap_servers, ["localhost"]}.
{ldap_port, 389}.
{ldap_rootdn, "cn=Directory Manager"}.
{ldap_password, "the_password_you_set_during_kolab_install_for_ldap"}.
{ldap_filter, "(objectClass=mailrecipient)"}.
{ldap_uids, [{"alias", "%u@%d"}]}.
{acl, admin, {user, "admin", ""}}.
{hosts, [""]}.
{ldap_base, "ou=People,dc=yourdomain,dc=org"}.

Save the file by ctrl 'x' and then pressing 'y' (yes) and enter.

Start ejabberd service

sudo service ejabberd start

Add ejabberd as a service to start at boot

chkconfig ejabberd on

Update iptables

sudo iptables -I INPUT -ptcp --dport 5280 -j ACCEPT
sudo iptables -I INPUT -ptcp --dport 5222 -j ACCEPT
sudo service iptables save
sudo service iptables restart

You should now be able to login with your IM client such as Jitsi or Pidgin. As ejabberd is set to use ldap_uids with 'alias' you can login with an alias instead of

Andreas Cordes's picture

100 days and no mayor probs

Since now I'm using +Kolab on my +Raspberry Pi  for 100 days.

Syncroton (Active-Sync) is working like a charme, access to my files via WebDav is also working.
After changing the webserver from +Apache  to +Nginx the performance in using roundcube is now ok and after the logrotate during midnight I had no sync problems any more with my mobile.
Power consumption is below 3W so it costs only about 7€ per year (0,60€ per month) which is really cheap. Ok you have to add 1€ per month for the domain if you use +regfish for the domain. 
A few days ago I exported all my contacts hosted on the google server and imported them into Kolab. 
So if you don't like to let google know the phone number from your grandma and so on it's up to you to change this and get your own groupware on your server at your home :-)
BTW you can do a lot of other things with your Raspberry Pi.
DSP3's picture

Kolab - opensource unified communication and collaboration system

Communication, collaboration and dissemination of ideas is an important part of learning and I happen to believe that learning to build systems that enhance communication leads to a better understanding of the whole communication process, especially in this age of all things connected, all the time. Kolab is a collection of a number of mature open source projects, which enables you to build a very powerful communication platform whilst maintaining full control of the system. The installation, configuration and management can be delegated to individuals or groups within the learning environment and this system can scale from a small user base such as a single class to a whole institution. Big thank you to the Kolab community for such a great product!

This post will document installing and configuring Kolab 3.2 on CentOS 6.5 Kolab is a collection of opensource projects packaged together to make a unified system. I have a lot of experience with the many parts that make Kolab - Roundcube, Postfix, Cyrus etc and Kolab strives to bring them all together into one manageable install with a central web administration interface for the directory server (LDAP) used for domain and user management.

For installation I mainly followed 2 different guides, here (English) and here (German). Many thanks to them!

Firstly and most importantly, your server needs to have correctly configured DNS and MX records. Without these, nothing will work. Secondly, you need to have your server hostname set correctly. I would also highly recommend setting up on a freshly installed and updated CentOS system.

Andreas Cordes's picture

Storing files in Kolab does not work


yesterday I needed the functionality of storing files in +Kolab.

I found out that this does not work on my installation.

This is a known bug in cyrus.

Raspbian does not have an updated package :-( so I started the compile issue again but now for a raspbian package.

To do the changes I downloaded the package cyrus-imapd and tried to compile like I did for all the +Kolab packages. But that didn't fix the error because I had to modify imap/message.c.

Ok, googling showed me that I have to use the right method with quilt.

So here are the instructions

apt-get -y source cyrus-imapd
apt-get -y build-dep cyrus-imapd
cd cyrus-imapd-2.4-2.4.16
quilt push -a
quilt new failed_asserting_during_append
quilt add imap/message.c

Edit the file imap/message.c. In line 389 add the line:

message_guid_generate(&(*body)->guid, msg.base, msg.len);

And continue with the following commands

quilt refresh
debuild -us -uc -b

and now go for coffee break :-)

After less than 2 hours you can install the new package.

cd ..
dpkg -i cyrus-imapd-2.4_2.4.16-4+deb7u1_all.deb 
Andreas Cordes's picture



I create a new page with my nginx config to cover all changes and mods which I've done on my Raspberry Pi.

The instructions are based on and

So feel free to leave any comments and to get your Kolab running on your Pi with a bit more performance.

More tuning tips are welcome. :-)


Andreas Cordes's picture

XMPP now integrated in Kolab and working :-)

Now I got it.

I'm using converse.js.

Following the instructions on  I got it.

Well, not only following the instructions but also to setup some more things:

First of all the config from the plugin. The main parts are

$config['converse_xmpp_bosh_prebind_url']= function($args) {
        return '';
$config['converse_xmpp_bosh_url']= function($args) {
        return '/http-bind';
$config['converse_xmpp_hostname']= function($args) {
        list($user,$host) = explode('@', $args['user']);
        return $host;
$config['converse_xmpp_username']= function($args) {
        list($user,$host) = explode('@', $args['user']);
        return $user;

Please check the variable name. It is in the from the plugin by default $rcmail_config, but the roundcubemail from kolab sources/binaries uses $config, so please change it :-)

To have the BOSH-Url available in roundcubemail, you have to redirect domain/http-bind to server:5280/htt-bind. My nginx config looks like this:
location /http-bind {
            proxy_pass  http://localhost:5280/http-bind;
            proxy_set_header Host $host;
            proxy_buffering off;
            tcp_nodelay on;
Andreas Cordes's picture

XMPP now working


my eJabberd server is now up and running and I can receive messages and send messages.

My next step is to setup the chat functionality in roundcubemail so you can send messages through a Jabber client or roundcubemail. :-)

I had to find the correct settings for my domain and the client to get it to work. So it's necessary to have proper DNS records for your domain and the services jabber is running on.

You must have a A/CNAME record for your domain (no wildcard, -> "nslookup" should work) and 3 SRV records for your domain where you setup your jabber server where all the clients and servers have to connect to.

Also you should use SASL for authentication purpose.

I prefer to have my domain as the jabber ID and not a subdomain.


roundcube's picture

Roundcube Webmail 1.0.0 released

We’re very proud to announce the stable version 1.0 of Roundcube Webmail. After more
than 8 years since the project was published, we feel confident to name it one-dot-oh.
From the last stable version we added to following new features:

  • Cleaned up the configuration into a single file
  • Importing email messages and contact group assignments
  • Advanced LDAP address book functionality
  • A toggle to switch between HTML and plaintext view
  • Save drafts in local storage for recovery
  • Canned responses to save and recall boilerplate texts
  • Improved keyboard navigation in messages list
  • Optimized UI to work on tablet devices
  • Attachment reminder plugin

And mainly we were busy cleaning up the codebase, fixing a lot of bugs, making it
more stable and writing more documentation.

With this release, we’d also like to introduce the Roundcube plugins repository at This central platform should help you
find the right plugins for your Roundcube installation and makes it simple to keep them up-to-date.
The installation and update mechanism is based on Composer
and Packagist.

We’d also like to encourage plugin developers to publish their plugins on this platform.
Please read the instructions how to prepare your
plugin for publishing.

After lots of testing and collecting your feedback, this version is considered stable
and we recommend to update all productive installations of Roundcube.

Download the fresh webmail and framework packages from

Read the full list of changes here:

Andreas Cordes's picture

XMPP Integration with eJabberd


yesterday I started to implement a chat into Kolab.
I decided to use an XMPP Server connected to the Kolab-Ldap and decided to use eJabberD.
Installation was quite simple and the connection to Kolab-Ldap as well.
Download and install with the following command:

apt-get install ejabberd

and follow the instructions.
Here are my specific parameter for the auth against Kolab-LDAP (the other remain as they are):
%%{auth_method, internal}.
{auth_method, ldap}.
{ldap_servers, ["localhost"]}.
{ldap_port, 389}.
{ldap_rootdn, "cn=Directory Manager"}.
{ldap_password, "DontEvenThinkAboutIt"}.
{ldap_filter, "(objectClass=mailrecipient)"}.
{ldap_uids, [{"mail", "%u@%d"}]}.
{acl, admin, {user, "admin", ""}}.
{hosts, [""]}.
{ldap_base, "ou=People,dc=zion-control,dc=org"}.

It's not necessary to register user in eJabberd, just create one in your kolab-webadmin.

If you want to check your eJabberD, go to :


and login with your full mail address and password which you use for Kolab.

Next part would be to have an IM in roundcube...