19
I Use This!
Activity Not Available

News

Posted over 11 years ago by Andreas Cordes
Now I got it. I'm using converse.js. Following the instructions on http://permalink.gmane.org/gmane.comp.kde.kolab.devel/12092  I got it. Well, not only following the instructions but also to setup some more things: First of all the config from the ... [More] plugin. The main parts are $config['converse_xmpp_bosh_prebind_url']= function($args) {        return 'http://127.0.0.1:5280/http-bind';};$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 config.inc.php 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   {mod_shared_roster,[                {'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'}        ]},  {mod_http_bind,[]} greetz    [Less]
Posted over 11 years ago by Andreas Cordes
Hi, 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 ... [More] 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 domain.com" 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. greetz   [Less]
Posted over 11 years ago by roundcube
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 ... [More] 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 plugins.roundcube.net. 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 roundcube.net/download Read the full list of changes here: trac.roundcube.net/wiki/Changelog WARNING: when upgrading from <= 0.9 the old configuration files named main.inc.php and db.inc.php are now deprecated and should be replaced with one single config.inc.php file. Run the ./bin/update.sh script to get this conversion done or manually merge the files. NOTE: the new config.inc.php should only contain options that differ from the ones listed in defaults.inc.php.   [Less]
Posted over 11 years ago by Andreas Cordes
Hi, 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 ... [More] 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", "zion-control.org"}}.{hosts, ["zion-control.org"]}.{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 : http://youraddress:5280/admin and login with your full mail address and password which you use for Kolab. Next part would be to have an IM in roundcube... greets   [Less]
Posted over 11 years ago by Timotheus Pokorra
This describes how to install a docker image of Kolab. Please note: this is not meant to be for production use. The main purpose is to provide an easy way for demonstration of features and for product validation. This installation has not been tested ... [More] a lot, and could still use some fine tuning. This is just a demonstration of what could be done with Docker for Kolab. Preparing for Docker I am using a Jiffybox provided by DomainFactory for downloading a Docker container for Kolab 3.1 running on CentOS 6. I have installed Ubuntu 12.04 LTS on a Jiffybox. I am therefore following Docker Installation instructions for Ubuntu for the installation instructions: Install a kernel that is required by Docker: sudo apt-get update sudo apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring After that, in the admin website of JiffyBox, select the custom kernel Bootmanager 64 Bit (pvgrub64); see also the german JiffyBox FAQ. Then restart your JiffyBox. After the restart, uname -a should show something like: Linux j89610.servers.jiffybox.net 3.8.0-37-generic #53~precise1-Ubuntu SMP Wed Feb 19 21:37:54 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux Now install docker: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9   sudo sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"   sudo apt-get update sudo apt-get install lxc-docker Install container The image for the container is available here: https://index.docker.io/u/tpokorra/kolab31_centos6/ If you want to know how this image was created, read my other blog post http://www.pokorra.de/2014/03/building-a-docker-container-for-kolab-on-jiffybox. To install this image, you need to type in this command: docker pull tpokorra/kolab31_centos6 You can create a container from this image and run it: MYAPP=$(sudo docker run --name centos6_kolab31 -p 443:443 -h kolab31.test.example.org -d -t -i tpokorra/kolab31_centos6) (-P should work instead of -p 443:443 and use the ports defined by EXPOSE in Dockerfile, but that does not work for me at the moment…) You can see all your containers: docker ps -a You now have to attach to the container, and inside the container start the services: docker attach $MYAPP /root/start.sh Somehow it should work to start the services automatically at startup, but I did not get it to work with CMD or ENTRYPOINT. To stop the container, type exit on the container’s console, or run from outside: docker stop $MYAPP To delete the container: docker rm $MYAPP You can reach the Kolab Webadmin on this URL: https://localhost/kolab-webadmin. Login with user: cn=Directory Manager, password: test The Webmail interface is available here: https://localhost/roundcubemail.   [Less]
Posted over 11 years ago by Timotheus Pokorra
Preparation I am using a Jiffybox provided by DomainFactory for building a Docker container for Kolab 3.1 running on CentOS 6. I have installed Ubuntu 12.04 LTS on a Jiffybox. I am therefore following Docker Installation instructions for Ubuntu for ... [More] the installation instructions: Install a kernel that is required by Docker: sudo apt-get update sudo apt-get install linux-image-generic-lts-raring linux-headers-generic-lts-raring After that, in the admin website of JiffyBox, select the custom kernel Bootmanager 64 Bit (pvgrub64); see also the german JiffyBox FAQ. Then restart your JiffyBox. After the restart, uname -a should show something like: Linux j89610.servers.jiffybox.net 3.8.0-37-generic #53~precise1-Ubuntu SMP Wed Feb 19 21:37:54 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux Now install docker: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9   sudo sh -c "echo deb http://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"   sudo apt-get update sudo apt-get install lxc-docker Create a Docker image I realised that if I would install Kolab in one go, the image would become too big to upload to https://index.docker.io. Therefore I have created a Dockerfile which has several steps for downloading and installing various packages. For a detailed description of a Dockerfile, see the Dockerfile Reference My Dockerfile looks like this: FROM centos RUN mv /etc/localtime /etc/localtime.old; ln -s /usr/share/zoneinfo/Europe/Berlin /etc/localtime RUN echo "NAME=kolab31.test.example.org" > /etc/sysconfig/network; echo "kolab31.test.example.org" > /proc/sys/kernel/hostname RUN chmod a+w /dev/shm WORKDIR /root RUN wget -O master.tar.gz https://github.com/tpokorra/kolab3_tbits_scripts/archive/master.tar.gz; tar xzf master.tar.gz; rm master.tar.gz WORKDIR /root/kolab3_tbits_scripts-master/kolab3.1 RUN sed -i -e "s/^yum -y install kolab.*/#yum -y install kolab/" reinstallCentOS.sh RUN echo "y" | ./reinstallCentOS.sh CentOS_6 # split yum -y install kolab into several steps, # to keep the revisions small enough to avoid problems with uploading the image RUN yum -y install php-kolabformat RUN yum -y install mysql-server RUN yum -y install kolab-cli RUN yum -y install kolab-imap RUN yum -y install 389-ds-base RUN yum -y install java-1.6.0-openjdk RUN yum -y install libgcj RUN yum -y install kolab-ldap RUN yum -y install kolab-webadmin RUN yum -y install iRony RUN yum -y install wallace RUN yum -y install kolab-webclient RUN yum -y install postfix RUN yum -y install clamd RUN yum -y install kolab-mta RUN yum -y install qt-x11 RUN yum -y install libkolab RUN yum -y install kolab patch unzip # prepare for setup kolab RUN ./initSetupKolabPatches.sh # we cannot run setup-kolab here, because the hostname is no FQDN # RUN setup-kolab --default --timezone=Europe/Brussels --directory-manager-pwd=test # allow connections on port 443 (https) EXPOSE 443 # TODO: allow IMAP as well   #CMD ["/sbin/init"] This command will build a container with the instructions from the Dockerfile in the current directory. When the instructions have been successful, an image with the name tpokorra/kolab31_centos6 will be created, and the container will be deleted: sudo docker build -t tpokorra/kolab31_centos6 . You can see all your local images with this command: sudo docker images To finish the container, we need to run setup-kolab, this time we define a hostname as a parameter: MYAPP=$(sudo docker run --name centos6_kolab31 -h kolab31.test.example.org -d -t -i tpokorra/kolab31_centos6 /bin/bash) docker attach $MYAPP # run inside the container: echo `hostname -f` > /proc/sys/kernel/hostname setup-kolab --default --timezone=Europe/Brussels --directory-manager-pwd=test ./initSSL.sh cat > /root/start.sh << EOF #!/bin/bash service httpd start service mysqld start service dirsrv start service cyrus-imapd start sleep 10 service kolabd start service kolab-saslauthd start EOF chmod a+x /root/start.sh service kolabd stop service dirsrv stop service cyrus-imapd stop service mysqld stop service httpd stop exit Typing exit inside the container will stop the container. Now you commit this last manual change: docker commit $MYAPP tpokorra/kolab31_centos6 # delete the container docker rm $MYAPP You can push this image to https://index.docker.io: #create a new account, or login with existing account: sudo docker login sudo docker push tpokorra/kolab31_centos6 You can now see the image available here: https://index.docker.io/u/tpokorra/kolab31_centos6/ See this post Installing Demo Version of Kolab 3.1 with Docker about how to install this image on the same or a different machine, for demo and validation purposes. Current status: There are still some things not working fine, and I have not tested everything. But this should be a good starting point for other people as well, to help with a good demo installation of Kolab on Docker.   [Less]
Posted over 11 years ago by grote
Today is Document Freedom Day which started out for documents in the OOXML days, but now is much more generally about Open Standards. This is a great opportunity to show you how Kolab uses Open Standards all the way down to the storage layer. Since ... [More] Kolab is a lot about email, it uses SMTP (RFC 821) and IMAP (RFC 1730) to send and store emails which is by itself not overly exciting since at least in the free world, most email software does that. But Kolab goes further and uses IMAP as a NoSQL storage engine and therefore gets all the scalability, ACLs and sharing from IMAP for free. It uses the IMAP METADATA Extension (RFC 5464) to storage other content and even configuration in IMAP folders. Since Kolab is a Groupware Solution, it stores contacts, events and tasks in there. Of course, it does so using Open Standards as well. Contacts are stored in the xCard (RFC 6351) format and tasks as well as events are stored in the xCal (RFC 6321) format. All those objects are then encapsulated in a MIME message according to RFC 2822. The advantage of that is that your personal data is not scattered all over the place, but in one central IMAP database which you can easily back up (e.g. with offlineimap) or move to another server (e.g. with imapsync). The new version of Kolab supports file storage and the default is to store them in IMAP as well. Unfortunately, not every IMAP client understands the METADATA extension and displays the other data as you would like. Therefore, Kolab offers other protocols to access that data. For your calendars, Kolab uses CalDAV (RFC 4791). Address book with contacts can be synchronized using CardDAV (RFC 6352) and files are available via WebDAV (RFC 2518). For a proper groupware it is important that you can invite people to events or assign them tasks even if those people are using other systems on other servers. To achieve this, Kolab uses iTIP (RFC 5546) invitations and sometimes has to implement workarounds, because other clients are not respecting the standard fully. Unfortunately, this is a problem Kolab faces with all standards that are for inter-operating with other software. To make sure all those different standards interact well together in one system and to be able to further enhance the functionality, the Kolab community uses a defined KEP process. KEP is short for Kolab Enhancement Proposal and works similar to Python’s PEP or XMPP’s XEP. Happy Document Freedom Day! :)   [Less]
Posted over 11 years ago by Diane Trout
Introduction Kolab Sys has been putting a lot of effort into developing various components to provide a turn key enterprise communication platform. Unfortunately for me, they seem to be more of a CentOS / RedHat shop. Also, I'm not an enterprise. ... [More] Paul Boddie has been doing lots of work trying adapt the Kolab Sys packages for Debian. See Minimal Kolab and Kolab, Debian, LDAP and XMPP for example. For me the Kolab packages made too many assumptions about what my environment should look like -- that it should be using 389-ds, Cyrus IMAP, MySQL, Postfix, and Apache-mod-php. However I've been a long time Debian user so I've been running OpenLDAP, Dovecot, and as a Python programmer I've been using apache2-mpm-worker and mod-wsgi and didn't want to switch to apache2-mpm-prefork. After seeing Paul's posts about the Kolab setup-kolab, dependency tree and then seeing Kolab from Source. I had the idea, what if instead of trying to install all of Kolab and use setup-kolab, I tried to install Kolab piecemeal and manually configure just those components for my environment? One question I have is how many of the Kolab components do you need to be running before you can be considered to be running "Kolab"? Kolab 0 The most minimal way to get started with Kolab, is to run an IMAP server and use KDEPIM with libkolab and libkolabxml linked in. With that (and some configuration in akonadi) you can store contacts and calendar information on your IMAP server and access it from other KDEPIM clients on other computers. I configured this using akonadiconsole. On the agents tab I picked Add a new agent, if the kolab format libraries were installed Kolab should be listed in the popup list of agents. Once its added you may need to tell it to create Kolab Folders. On my dovecot it created folders named ~/Maildir/.INBOX.Calendar, ~/Maildir/.INBOX.Contacts and a few others. putting the folders into an .INBOX folder is a bit suboptimal, but I can put up with it. KolabDroid Having ones calendar and contacts synchronized between your phone and your computer is really convienent. The thing that would've been simplest to setup is KolabDroid, an android application that tries to do the synchronization like KDEPIM does over IMAP. Although it warned that it would eat all my data. It did manage to load all of my contacts from my mail server to my phone pretty reliably. The calendar however was a different story. I think in the worst case some events appeared in the wrong week. (Or I really failed at reading). Moving toward Kolab I could try to fix KolabDroid, but in addition to not wanting to set up an android development environment, I thought it would be better to try and test the packaging for the official Kolab components providing synchronization via WebDav. I started to install roundcube, roundcube-plugins-kolab, chwala and irony via git checkout method but ended up with a mess of symlinks and scattered configuration files and so decided to try to use packages. A piece of Kolab For my goal of syncing my calendar and contacts I need iRony and its dependencies. php-kolab, php-kolabformat Roundcube Roundcube-plugins-kolab Chwala iRony There's several sources for those components. See Paul's review of repositories for more information. For the packages I built, mostly I imported KolabSys's OBS packages and in some cases merged in Paul's versions. Dovecot 2.2.10 had enough metadata support for my tests, so I was able to avoid having to build the dovecot-metadata package. PHP Kolab I needed the updated php-kolab components I grabbed the source packages from obs using dget http://obs.kolabsys.com:82/Kolab:/3.1/Debian_7.0/libkolab_0.5.0-0~kolab3.dsc dget http://obs.kolabsys.com:82/Kolab:/3.1/Debian_7.0/libkolabxml_1.0.1-0~kolab2.dsc extracted them, and rebuilt them, using debuild Roundcubemail I pushed the git-buildpackage repository I used for roundcubemail. In this case I used the older 1.0 version of roundcube instead of Kolab's 1.1 version. Since I imported both versions into my repository I had to make a topic branch diane-1.0 that contains my changes to work with php-fpm. That is enabled by this patch, which lets me satisfy the php requirement with php5-fpm. To configure it for PostgreSQL I followed along the roundcube documentation which was edit /etc/roundcubemail/config.inc.php and set: $config['db_dsnw'] = 'pgsql://roundcube:password/roundcubeemail' I went through a complex process of creating the database as the postgres super-user, then creating the roundcube user, and then manually changing the ownership of all the tables and sequences using: alter table X owner to roundcube; alter sequence X owner to roundcube; It might be a reasonable solution to create the roundcube user with the permission to create a database. Roundcube-plugins-kolab Effectively I just used the KolabSys OBS package. Though I did import it into my git repository and built my own .deb from that. (using the diane-3.1 branch as the master for gbp). I had to do more manual configuration here. edit /etc/roundcubemail/calendar.inc.php to change $rcmail_config['calendar_driver'] from "database" to "kolab". in /etc/roundcubemail/kolab_auth_addressbook.php configure kolab_auth_addressbook. $rcmail_config['kolab_auth_addressbook'] = Array( 'name' => 'Kolab Auth', 'hosts' => Array('localhost'), 'port' => 389, 'use_tls' => false, 'user_specific' => false, 'base_dn' => 'ou=People,dc=example,dc=org', 'bind_dn' => 'uid=kolab-service,ou=Special Users,dc=example,dc=org', 'bind_pass' => 'password', 'writable' => false, 'ldap_version' => 3, // using LDAPv3 'fieldmap' => Array( 'name' => 'displayname', 'email' => 'mail', 'email:alias' => 'alias', 'role' => 'nsroledn', ), 'sort' => 'displayname', 'scope' => 'sub', 'filter' => '(objectClass=*)', 'fuzzy_search' => true, 'sizelimit' => '0', 'timelimit' => '0', 'groups' => Array( 'base_dn' => 'ou=Groups,dc=example,dc=org', 'filter' => '(|(objectclass=groupofuniquenames)(objectclass=groupofurls))', 'object_classes' => Array('top', 'groupOfUniqueNames'), 'member_attr' => 'uniqueMember', ), ); I decided to change the default kolab_auth_filter to just be against inetOrgPerson and not kolabInetOrgPerson, as I wasn't ready to work on importing the kolabInetOrgPerson schema. so: $rcmail_config['kolab_auth_filter'] = '(&(objectClass=kolabInetOrgPerson)(|(uid=%u)(mail=%fu)(alias=%fu)))'; changed into: $rcmail_config['kolab_auth_filter'] = '(&(objectClass=inetOrgPerson)(|(uid=%u)(mail=%fu)(alias=%fu)))'; It looks like I replaced the ldap_authentication.php from the package with a version I had copied from a system setup the official setup-kolab way. // The id of the LDAP address book (which refers to the rcmail_config['ldap_public']) // or complete addressbook definition array. $config['kolab_auth_addressbook'] = Array( 'name' => 'Kolab Auth', 'hosts' => Array('localhost'), 'port' => 389, 'use_tls' => false, 'user_specific' => false, 'base_dn' => 'ou=People,dc=example,dc=org', 'bind_dn' => 'uid=kolab-service,ou=Special Users,dc=example,dc=org', 'bind_pass' => 'password', 'writable' => false, 'ldap_version' => 3, // using LDAPv3 'fieldmap' => Array( 'name' => 'displayname', 'email' => 'mail', 'email:alias' => 'alias', 'role' => 'nsroledn', ), 'sort' => 'displayname', 'scope' => 'sub', 'filter' => '(objectClass=*)', 'fuzzy_search' => true, 'sizelimit' => '0', 'timelimit' => '0', 'groups' => Array( 'base_dn' => 'ou=Groups,dc=example,dc=org', 'filter' => '(|(objectclass=groupofuniquenames)(objectclass=groupofurls))', 'object_classes' => Array('top', 'groupOfUniqueNames'), 'member_attr' => 'uniqueMember', ), ); // This will overwrite defined filter $config['kolab_auth_filter'] = '(&' . '(objectclass=inetorgperson)' . '(|(uid=%u)(mail=%fu)(alias=%fu)))'; // Use this fields (from fieldmap configuration) to get authentication ID $config['kolab_auth_login'] = 'email'; // Use this fields (from fieldmap configuration) for default identity $config['kolab_auth_name'] = 'name'; $config['kolab_auth_alias'] = 'alias'; $config['kolab_auth_email'] = 'email'; if (preg_match('/\/helpdesk-login\//', $_SERVER["REQUEST_URI"]) ) { // Login and password of the admin user. Enables "Login As" feature. $config['kolab_auth_admin_login'] = 'cyrus-admin'; $config['kolab_auth_admin_password'] = 'password'; $config['kolab_auth_auditlog'] = true; } // Administrative role field (from fieldmap configuration) which must be filled with // specified value which adds privilege to login as another user. $config['kolab_auth_role'] = 'role'; $config['kolab_auth_role_value'] = 'cn=kolab-admin,dc=example,dc=org'; // Administrative group name to which user must be assigned to // which adds privilege to login as another user. $config['kolab_auth_group'] = 'Kolab Helpdesk'; if (file_exists(RCUBE_CONFIG_DIR . '/' . $_SERVER["HTTP_HOST"] . '/' . basename(__FILE__))) { include_once(RCUBE_CONFIG_DIR . '/' . $_SERVER["HTTP_HOST"] . '/' . basename(__FILE__)); } The kolab auth components really want a working LDAP server, so I set up OpenLDAP and created a very minimal directory using an LDIF file similar to this one. Kolab has a "Special Users" tree for some of its administrative users, in addition to the normal People and Group trees. The LDIF file below provides a very minimal configuration The real 389-ds tree includes many other rules defining access control conventions. I suspect higher level Kolab components will depend on 389-ds for its specific ACI syntax. dn: dc=example,dc=org objectClass: top objectClass: dcObject objectClass: organization o: example.org dc: example structuralObjectClass: organization dn: cn=admin,dc=example,dc=org objectClass: simpleSecurityObject objectClass: organizationalRole cn: admin description: LDAP administrator userPassword:: base64-password structuralObjectClass: organizationalRole dn: ou=Special Users,dc=example,dc=org objectClass: top objectClass: organizationalUnit ou: Special Users description: Special Administrative Accounts structuralObjectClass: organizationalUnit dn: uid=kolab-service,ou=Special Users,dc=example,dc=org objectClass: top objectClass: person objectClass: inetOrgPerson objectClass: organizationalPerson uid: kolab-service givenName: Kolab sn: Service cn: Kolab Service userPassword:: base64-password structuralObjectClass: inetOrgPerson dn: ou=People,dc=example,dc=org objectClass: top objectClass: organizationalUnit ou: People structuralObjectClass: organizationalUnit dn: ou=Groups,dc=example,dc=org objectClass: top objectClass: organizationalUnit ou: Groups structuralObjectClass: organizationalUnit dn: uid=user,ou=People,dc=example,dc=org objectClass: top objectClass: inetOrgPerson objectClass: organizationalPerson objectClass: person givenName: User sn: User cn: User User preferredLanguage: en_US structuralObjectClass: inetOrgPerson uid: user userPassword:: base64-password Also the libkolab plugin needs some database configuration and there isn't a shipping postgres version. I commited an updated version I chose to use Postres' XML type in my schema, this later caused trouble, as I had a really old contact whose data wasn't invalid XML. It turns out that Postgre actually validates the XML being loaded into it. Chwala The default chwala package includes .htaccess files to configure the php environment and so depends on apache2-mod-php. Changing to php5-fpm caused a variety of problems as without mod-php apache can't parse the php specific configuration options in the .htaccess files. Thankfully php >= 5.3 provided at least one solution in that it can read .user.ini files (at least when running under fastcgi.) So I just renamed the .htaccess files to .user.ini and was good to go. In /etc/roundcubeemail/kolab_files.inc.php I changed kolab_files_url to: ``$rcmail_config['kolab_files_url'] = 'https://<hostname>/chwala/';`` Make sure <hostname> is the name you're using to connect to roundcube. I first tried localhost and the roundcube files UI wouldn't work. Once I changed it to my real hostname, it suddenly started working. Here's my chwala package repository iRony The final component is iRony. I didn't need to do any special configuration once I had all the previous components configured. Although I did modify the package slightly to not require mod-php. iRony repository Conclusion Once all that was configured I installed DAVdroid from F-Droid, and pointed it at: https://<hostname>/iRony/ and synced my contacts & calendars. There's still many things not tested. I haven't made any attempt to use shared folders, I don't have any of Kolab's anti-spam software, I don't even know if the pykolab library will work in this environment yet. While I was setting things up I did discover that I didn't enable activesync, I think that requires the kolab-syncotron component. If one is interested in that protocol instead of CalDAV/CardDAV you might want to investigate installing it. If you have any questions you can find me on twitter @alienghic or freenode/OFTC as detrout.   [Less]
Posted over 11 years ago by Andreas Cordes
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 ... [More] 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. greets   [Less]
Posted over 11 years ago by Andreas Cordes
Hi, 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 ... [More] 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 IMAPdeactivating 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. greets   [Less]