Donnerstag, 4. September 2014

Kolab 3.3 now available for Raspberry Pi


now I finished compiling all the packages for the +Raspberry Pi . Just a short note that you can update your groupware on your Pi pto the most recent version of .


Donnerstag, 7. August 2014

Updating from 3.2 to 3.3 beta1


I just finished the compiling of all modules and performed an upgrade to 3.3 beta1 on +Rasperry Pi .

For all impatient:
deb /

Changes I adopted to my installation :

modules = resources, invitationpolicy, footer 
kolab_invitation_policy =, ACT_MANUAL
type = ldap
host = ldap://localhost:389
bind_dn = "uid=kolab-service,ou=Special Users,dc=zion-control,dc=org"
bind_pw = "IwontTellYou"

[directory "local-cache"]
type = static
fbsource = file:/var/cache/kolab-freebusy/%s.ifb
expires = 10m
[directory "kolab-resources"]
type = ldap
host = ldap://localhost:389
bind_dn = "uid=kolab-service,ou=Special Users,dc=zion-control,dc=org"
bind_pw = "IwontTellYou"
base_dn = "ou=Resources,dc=zion-control,dc=org"
filter = "(&(objectClass=kolabsharedfolder)(mail=%s))"
attributes = mail, kolabtargetfolder
fbsource = "imap://cyrus-admin:IwontTellYou@localhost/%kolabtargetfolder?acl=lrs"
cacheto = /var/cache/kolab-freebusy/%mail.ifb
expires = 10m
loglevel = 100  ; Debug

So far, active-sync still working :-) and no major issues as the ones already known.

More the next days when I performed some tests

Greetz Andreas

Mittwoch, 6. August 2014

Kolab 3.3 beta1 released

Hi there,

+Kolab  just released the 3.3 beta1 version of kolab. (

My +Raspberry Pi is currently downloading and compiling all the packages.

Because of all the dependencies I solved during the first compile phase, I expect not so much errors during this installation.

Hope to tell you more tomorrow or even on friday.

Greets Andreas

Samstag, 3. Mai 2014

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.


Donnerstag, 17. April 2014

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 

To get the indexes working on the existing files you have to reconstruct the mailboxes with the following command:
cyrreconstruct -C /etc/imapd.conf -fr 'user/name/Files@domain'

You can also mount the files in Windows. For me only the command line is working. So click on Start->run (or press Windows-R) and enter the following command:
net use x: YourPasswordGoesHere /
The impatient people can you use my prebuild package on my APT-Repo
deb / 

Samstag, 12. April 2014



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. :-)


Freitag, 11. April 2014

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;

And now the ejabberd.cfg. When you install ejabberd and connect it to kolab-ldap, binding also seems to work (domain:5280/http-bind) but it doesn't. You need explicitly to activate it in the "modules"-section!
I forgot this and struggled around nearly 4 hours to find the error.

So the changes in modules section are
                {'ldap_base', 'ou=People,dc=example,dc=com'},
                {'ldap_rfilter', '(objectClass=kolabinetorgperson)'},
                {'ldap_memberattr', 'uid'},
                {'ldap_userdesc', 'cn'},
                {'ldap_filter', '(objectClass=kolabinetorgperson)'},
                {'ldap_useruid', 'uid'}


Dienstag, 8. April 2014

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.


Montag, 31. März 2014

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...


Donnerstag, 13. März 2014

Kolab and vHosts

Today I played a little with the apache config to improve my performance using apache.

I noticed that my vHost setup was not working so I fixed this at first.  After a while I was wondering that I didn't receive any mail since then... Ok, something is now "kaputt" :-)

Now I had a look at the config of kolab in the apache sites-enabled directory. Kolab adds some entries in this directory, but thos "may" work for vHosts but not for my setup.

Simply moving the kolab-syncroton from sites-available to conf.d solved the problem for me.

Not the best, may be, but it's working.


Dienstag, 11. März 2014

First impression - and thanks for the feedback


first of all I wish to say thanks for your feedback on my posts :-)

So now the groupware is up and running and the next steps are planned already (XMPP = Chat/Messaging, OwnCloud).

The roundcube web frontend is a bit slow for daily work, and it reconnects to the imap server very often.

Sending mails from my own domain (dynamic IP) uses a smart host (mailjet, costs less and 200 mails/day are free :-)) and receiving mails also takes sometime because of Spam/Virus detection.

So the next parts are also performance improving.

Some topics to check are
memory usage (count of server process fro IMAP, Apache ...)
Proxy for roundcube connection to IMAP
deactivating Virus/Spam detection and use some header/body checks instead (not for production use of course)

If you have more cheats and hints to increase the performance, that would be nice.


Montag, 10. März 2014

200 ok, it's working :-)

Hi there,

Yesterday I finished the compilation story and was able to setup kolab.

I had to install apache-2.2 and then compile 389-admin... but then...... 

Everything is available to install. :-)

Ok, I had some problems but here is a short summary:

Kolab needs some IMAP extensions which are available in cyrus-imap 2.5 (patches from kolab which are included un the next upstream) but currently the directories are not setup correctly.

Ok, just create some symlinks:
ln -s /var/lib/cyrus/ /var/lib/imap
ln -s /var/spool/cyrus/ /var/spool/imap
ln -s /usr/lib/cyrus /usr/lib/imap
And the SSL certificates are missing:
openssl req -new -x509 -nodes -out /etc/ssl/certs/cyrus-imaps.pem -keyout /etc/ssl/private/cyrus-imapd.key -days 3650
and change the filenames in the /etc/imapd.conf accordingly.

Now add postfix and cyrus to the ssl-cert group and also to the mail group.

Now it's time to start the command:

Yeah, it's working. :-) (write down all the passwords, you'll need them)

I saw that my MySQL installation needs a password for the root user on localhost (got an error message during the setup) but nevertheless it's working.

You want to login after that?
Go to http://address/kolab-webadmin and login with "cn=directory manager" and the known password.

Now you can create a user and so on and it will receive mails just right after creation.

The cool stuff is, on my smartphone (Samsung Galaxy Note with Omni Rom = Android 4.4.2) I create a new account with "Microsoft Exchange", enter my eMail address and password, accepting all SSL certificates and that's it.

Now I can synch my mobile with my own groupware, including tasks, contacts, appointments.

In the past I loved to have a Catchall for my domain, so I created a new file in /etc/postfix/ldap called
server_host = localhost
server_port = 389
version = 3
search_base = dc=domain,dc=org
scope = sub
domain = ldap:/etc/postfix/ldap/
bind_dn = uid=kolab-service,ou=Special Users,dc=domain,dc=org
bind_pw = ComeOn_I_wont_tell_you
query_filter = (&(alias=catchall@%d)(objectclass=kolabinetorgperson))
result_attribute = mail
In the kolab-webadmin page you can now add a new alias called

And now enjoy your groupware on your RaspberryPi.

For all of you who just want to download and install the DEBs:

Add my repo to your sources.
deb /
and just install.

By the way, the docs on are really helpful.


Samstag, 8. März 2014

The compilation story continues


not only pykolab was missing. The order which package to compile, install and compile again is important but we will manage this.

Now I had to compile libkolab, kolab-utils and may be some more.

I have my DEB directory in the sources.list so I know which package is currently missing (aptitude says "unavailable"). So I change into that directory, running "apt-get build-dep packagename" and it should now install all missing packages. The new one are now in my DEB directory and a "apt-get update" will take the new ones into account.

Don't forget a
dpkg-scanpackages .  | gzip -c9 > Packages.gz
before running apt-get update so the Packages.gz file is new and includes the newly created DEBs..

The story continues :-)


Compilation finished... But we are not ready


compilation finished after, well, quite a lot of time (~13h)...

I checked all the files and one package was missing (pykolab) because of some missing dependencies.

Checking again showed me that the following packages are missing:
intltool libglib2.0-dev python-icalendar python-nose
Ok. So we install these packages and continue with pykolab... (python-icalendar we compiled last night).

And again, compilation will take its time.


Freitag, 7. März 2014

Preparation page created

Ok guys,

I created the first How-To for Kolab on Pi.

Feel free to add any comments.

My RasPi is still compiling for 9 hours (and continues).


Started to compile Kolab on Raspberry Pi


now it's time to start my blog and share my experience with my Raspberry Pi.

Currently it is up and running as a mailserver for my own domain but in the near future I'm going to install kolab on it. :-)

I googled a lot about kolab and it looks promising to my needs, but ....

Yes, Raspberry Pi is not x86 or x64, it is an arm based little server with less power consuming and there are no Kolab binaries available.

So I decided to build Kolab from scratch. Daniele Gobbetti did this for Kolab 3.0.
You may find some information here:

But now we have 3.1 available and 3.2 is in the line.
To know how it works, I'll do this on my own and share all the knowledge. :-)

Writing this post, my Raspberry Pi is compiling ........ and I think it will take a lot of time to generate all the debs.

Later on I'll write some more lines (have to iron some clothes)