Valid HTML 4.01 Transitional

Jimc's Awesome PIM Server

James F. Carter <jimc@math.ucla.edu>, 2013-11-02

A PIM (Personal Information Manager) generally provides these services to an individual user:

Requirements

I have never had a really satisfactory PIM service and I would like to set one up. My requirements are rather different from those of the corporate executive whose importance is defined by the number of people he can drag into meetings.

History of Failures

We have tried and mostly rejected these PIM services:

ownCloud WebDAV Server and Client

I need to have one set of files that I can use and edit on several desktop and mobile devices, specifically the Android netbook that replaced my laptop which ran desktop Linux. One very attractive solution is Dropbox, a commercial cloud service. (Of course this raises a red flag.) You can get I believe 2Gbytes for free and more if you pay. A client, with a large and ominous closed-source driver, runs on your desktop or mobile machine and is mounted over one of your directories. Any files placed there or altered are promptly uploaded to the cloud server, and your other clients are soon aware and will download the new version to their Dropbox directories.

It turns out that ownCloud offers very similar software, except that it runs on your own server Their business model is to offer the software under an open source license (GPL), with paid support for customers who need a service level agreement. The wire protocol is WebDAV. ownCloud's main purpose is off topic, but it has several additional features, related to the WebDAV protocol, which are very much on topic.

ownCloud includes a web interface which can display the contact list and calendar (and the gallery and generic files). It is not as elaborate as competitors, e.g. it doesn't help you make a meeting by finding when participants are available, but it is functional and satisfactory for the level of use I need.

Normally you would use your ownCloud PIM server from a desktop or mobile dedicated client. On Android I'm using CalDAV-Sync and CardDAV-Sync by Martin Gajda, and the native Android People and Calendar apps have access to the cloud-served contacts and calendar. As I understand it, these are the native protocols for Apple iDevices. For Windows Phone, someone mentioned php-push-2 which is a Microsoft Exchange Active Sync connector for CalDAV, CardDAV and IMAP backends; I assume it runs on the client.

Roundcube Webmail

Since SquirrelMail has limited support for an external contact list, I decided to look for a new webmail program. Horde (IMP) has already been rejected. I tried Citadel a few years ago but it didn't work out for my environment. SOGo has nice integrated webmail but it has been rejected due to installation issues. The remaining candidate is Roundcube. This program has replaced SquirrelMail as the standard webmal in Apple's server configuration, and is currently used by a number of universities and commercial providers for mail service, including Harvard, Michigan (70,000 users) and Iran National Post. Inception 2008. It uses a lot of Javascript, and Ajax callbacks.

Roundcube is available on the SuSE Build Service under the name roundcubemail, an advantage for my package management. It was relatively easy to install. It has database interfaces for MySQL, PostgreSQL, and SQLite; given the small scale of my operation I chose SQLite. I also installed (from SBS) the separate contextmenu plugin. My small collection of plugins includes:

The web_authentication plugin makes Roundcube work with any of Apache's single sign-on modules, such as mod_auth_krb (Kerberos), mod_auth_oid (OpenID), or mod_auth_shib (Shibboleth), as well as X.509 client certificates. This is important for my style of using webmail, and for my paranoia about letting the browser remember passwords.

The CardDAV plugin imports the external contact list into Roundcube's database, much as Android's People app does. Syncing normally is manual. If you want automatic syncing they recommend that you run the provided script as a cron job, as frequently as you consider appropriate.

So between ownCloud and Roundcube, I have put together a PIM solution that actually works, and that didn't turn into a time sink. Success at last!