Proposed Documentation

Jeroen van Meeuwen (Kolab Systems) vanmeeuwen at kolabsys.com
Fri Feb 20 03:39:12 EST 2015


Hi there,

I was going to simply propose a structure for some documentation, but I 
quickly found that wasn't enough.

== Tooling ==

I think Simon Amor and myself are pretty happy with writing 
documentation in Sphinx [1], a not-at-all too complex syntax that does 
not bear as much overhead as the previous attempts with Publican DocBook 
XML.

== Installation ==

We agreed that it should be as easy as possibly to, proverbially: yum -y 
install cyrus-imapd && service cyrus-imapd start && kmail && kthxbye.

I'm thinking of something along the lines of 
https://docs.kolab.org/installation-guide/, minus the prepping, but plus 
the firewall logic, and minus the distinction between a community and 
enterprise edition.

Per target platform, we should have a package of our latest (stable) 
version available for download. Might I suggest we abuse 
build.opensuse.org and start with the existing build logic in 
https://obs.kolabsys.com/package/show/Kolab:Development/cyrus-imapd (6 
Linux platforms, 17 distribution versions). Such build system allows 
triggering builds for platforms based on git commits, and collaboration 
as to improve the packaging can take place there.

Per target platform, we should entertain both the current version 
included in the distribution's repositories, if any, and mention whether 
we (upstream) still actively support that version.

I'm afraid we're going to have to refer to download and build 
instructions for operating systems that do not themselves have package 
repositories or for which we cannot ship packages.

== Configuration ==

Aside from the option value within Cyrus IMAP (deployment, distributed, 
murder, replication, ...) ...

There is a point at which we have to insert verbiage about supported 
MTAs, and how to configure them to work with Cyrus IMAP. There is a goal 
to document the default MTA that comes with each distribution / 
operating system, and perhaps even roll it all up in a setup script. 
 From the top of my head this might include Exim, Postfix, Sendmail, 
qmail and opensmtpd -- but there may be others as well.

Most distributions do not allow various providers of a capability 
"imapserver" to conflict (i.e., a "yum -y install dovecot uw-imap 
cyrus-imapd" succeeds), nor allow one package to touch the configuration 
files of another package (so there's no %post or .postinst allowed that 
points everything to Cyrus IMAP automatically upon installation).

Tumbling down the rabbit hole further, it doesn't become any less messy 
-- so I'm going to make a radical and probably also controversial 
proposal;

   Choose a platform we call the "reference platform", and chose a 
particular implementation scenario we call the "reference 
implementation".

I cannot understate the amount of clarity it brings to a crowd less 
technically savvy than most of us. For the Kolab community for example, 
the reference implementation is a next-next-finish setup of a "yum -y 
install kolab" on a single Enterprise Linux 6 box (i.e. everything 
running on localhost). We'll elect to shift the reference platform to 
Enterprise Linux 7 after some or the other release this month, after 
which Enterprise Linux 6 becomes a legacy platform.

Subsequently, *all* documentation sets off on the basis of this 
reference implementation, and we find out our distro- or OS-specific 
notes to them.

Naturally, additional such reference implementations would be built -- 
how to run a unified murder (behind some NGINX proxy) for example, how 
to do LDAP/SQL authn/authz, etc.

I'll stop here, for your thoughts and remarks.

Kind regards,

Jeroen van Meeuwen

[1] http://sphinx-doc.org/

-- 
Systems Architect, Kolab Systems AG

e: vanmeeuwen at kolabsys.com
m: +41 79 951 9003
w: https://kolabsystems.com

pgp: 9342 BF08


More information about the Cyrus-devel mailing list