Right, over the holidays I have been thinking about this. Lots of people have commented on this and lots will continue to, its the old Exchange replacement / Groupware question.

Linux does mail very well, Sendmail does it’s job very well, and (IMHO) Postfix and/or Exim does it even better! We also have Courier-IMAP, Cyrus-IMAP & UW-IMAP, then there is Mutt, Evolution and Thunderbird. All these things are great, but they are mail but they are not Groupware. We also have great Open Source productivity software with Openoffice.org, its great and it is multi-platform. Though its competitor is Microsoft Office, and this is what we want to get rid of. Why do I want to replace Outlook and Exchange? Well one reason is I don’t like vendor lock in, 2 is cost, 3 is Exchange is a beast to administer, its got that horrible JET database backend, and its a resource hog.

In my work we are now using Openoffice.org in many situations, but in a lot of situations I am reluctant to take away Microsoft Office, the reason is Outlook. Even on its own, Outlook is a powerfull application, it gives them Mail, Contacts, Calendering, Task Manager. There is also the PST file, yes its a closed propriety format, but its trivial to specify the location of the file that can be on a mapped network share. So they have server-side storage even if its a horrible hack, and if you need to restore a users mailbox simply restore the PST file and there it is. It is also well integrated with the rest of the Microsoft Office applications and can also be nicley locked down / managed with Active Directory group policies. When you combine that with an Exchange Server you get a really cool (in functionality) solution. Features like global address books, permissions on user mailboxes, the concept of ‘sites’, server-side out-of-office, etc.

I know there are Open Source groupware solutions out there, Open Exchange, PHP-Groupware, Opengroupware.org, etc. My problem with these is that they either have a web-interface or there is no decent fat client solution, its either an inelegant connector or a fat client with very little of the required functionality. So here is my wish list for an Open Source groupware solution.

  • A good stable server that has the following features
    • Like all good *Nix daemons the config is all in a single (or a few) /etc/server.conf files and can be restarted with a nice /etc/init.d/server restart command.
      • The user data is held in simple (XML maybe?) files somewhere, either in a directory structure somewhere under maybe /var, or in the users home directory. Maybe a set of files for mail, a set of files for contacts, a set of files for calenders, a set of files for tasks etc…
        • The ability for users to easily give permissions to other users to either view / edit / delete their stuff. So if someone is out of the office its easy enough for another user to look after the other users mail etc.
          • Group calendering, an oft quoted requirement. Ability to book apointments in other users calenders, ability to check other users calenders to see if there is free time, etc.
            • The ability to set server side out-of-office replies. So if someone is on holiday they can set the out-of-office then switch their PC off.
              • Quotas, nice easy way to set these on users data stores.
                • It needs to be easily scalable, so its easy to scale up to lots of users.
                  • Inter-Server communications, so if you have 2 reigional offices each one can have their own servers, with its own users and data-stores, but each can ‘see’ the other. They should be able to know that they are part of the same ‘organisation’ just different sites. They would be able to see each others address books, calenders etc.
                    • PAM Enabled authentication so that you can hook into AD / NDS / LDAP for authentication, very good for places that want a single-sign-on solution.
                      • Instant messaging functionality. </ul>
                        • A non-Microsoft multi-platform fat client that has the following features
                          • One set of ‘folders’ that the user can see. There should be no seperate ‘Local Folders’ / ‘IMAP Folders’ trees. This just confuses matters.
                            • No matter what storage type you are using (server or local) you should be able to still store the same types of data.
                              • The client should be able to set all server out-of-office things.
                                • The local storage should be very similar to the server side storage, a set of files / folders with maybe a set of files for mail, some for contacts, some for calenders etc… The ability for this to be stored and used in a zipped format like the Openoffice.org format would be really cool.
                                  • Ability for the authentication to be tied into the single-sign-on solution.
                                    • Nice easy integrated interface to query other users data stores for checking Calenders, Contacts etc.
                                      • Nice easy integrated interface to give other users permissions on your data store. </ul> </ul> And that’s it! I am no developer so if there are any developers that are out there that are up for this feel free. I am happy to help as a tester / advisor to the project. I think once we have a good Open Source / Multiplatform Groupware Server and Client solution that we will have cracked the corprate desktop.