OpenGroupware Coils is a WebDAV / CardDAV / CalDAV server which also integrates a powerful workflow engine (OpenGroupware Integration Engine). Coils, via the zOGI API (exposed as both JSON-RPC and XML-RPC), the DAV presentation, and REST provides a powerful suite of contact, task, document, and workflow management capabilites.
Create prequisites * OpenGroupware Coils requires:
- A PostgreSQL database
- A RabbitMQ instance for inter-component communication.
- The Python prerequisites themselves require a few dependencies in order to build: * libxml2 & libxslt (XML processing) * YaML * Optional - YaJL - cmake is required to build the lloyd-yajl library. * Optional - Freetype, libpng, libjpeg (Image Manipulation; Coils uses the PIL) * Optional - libsmbclient (Samba)
Check out the code with mercurial
Adjust first few lines of the Makefile to match your database and message broker configuration.
make initdatabase * This step will create a virtual environment, install dependencies, and initialize a very base OpenGroupware Coils configuration.
make run
Connect your WebDAV client to http://localhost:8080/dav and login. The administrative user account is "ogo" and the default password is whatever was specified in the top of the Makefile.
Create a PostgreSQL account and UTF-8 encoded database. The OpenGroupware Coils deployment scripts will automatically populate the database.
sudo -u postgres createuser --password --no-superuser --no-create --no-createrole OGoDev sudo -u postgres createdb -E UTF-8 -O OGoDev OGoDev0
Create a user in RabbitMQ and a vHost for the OpenGroupware Coils components to use.
sudo /usr/sbin/rabbitmqctl add_user OGoDev0 {AMQPASSWORD} sudo /usr/sbin/rabbitmqctl add_vhost OGoDev0 sudo /usr/sbin/rabbitmqctl set_permissions -p OGoDev0 OGoDev0 ".*" ".*" ".*"
Unfortunately packages for the appropriate version of libyajl are not commonly available. The procedure to acquire and build a compatible library is:
curl -o yajl-1.0.11.tar.gz http://gentoo.osuosl.org/distfiles/yajl-1.0.11.tar.gz tar xzvf yajl-1.0.11.tar.gz cd lloyd-yajl-f4baae0/ mkdir build cd build cmake .. sudo make install sudo /sbin/ldconfig
Note that OpenGroupware Coils will provide all functionality in the absence of libyajl with the exception streaming JSON processing.
rpm --import http://apt.sw.be/RPM-GPG-KEY.dag.txt rpm -Uvh
http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm
All the requirements for building the necessary Python modules on openSUSE 12.1 can be satisified by performing:
- zypper in python python-ldap python-devel python-Distutils2 gcc make
- binutils libxml2-devel libxslt-devel libyaml libyaml-devel postgresql-devel postgresql cmake gcc-c++ freetype2-devel libpng14-devel libjpeg62-devel libsmbclient-devel
You can add the testing repository to your checkout by running:
make install-tests
The above will make a folder in your repository called "tests" that contains the contents of the testing repository. You can modify and create tests there, and commit then to the testing repo [permissions permitting].
And then you can run tests by:
make run-tests
If you have not already installed the testing repo asking to run the tests will do it for you.
MIT
This code is licensed as MIT. This gives you a lot of freedom and creates very little obligations on you; regardless of how you choose to use the code. If you benefit financially from this code we just ask that you consider making a donation to a beneficient organization such as the GNOME Foundation or NARP. The GNOME Foundation can be found @ <http://www.gnome.org/foundation/> NARP (National Association of Rail Passengers) can be found @ <http://www.narprail.org/>
Adam Tauno Williams <awilliam@whitemice.org> elkrisu (SourceForge user) btravers78 (SourceForge user) Ilya Lavrinov (SourceForge user "uzari") Bernard Devlin (SourceForge user "bjdevlin") Sebastian Reitenbach (SourceForge user "buzzzzdeeee")