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