Let’s run OpenPaaS with Docker

OpenPaaS is a huge platform. It relies on so many components that it is quite complicated (and long), even with a good documentation and tons of scripts, to deploy a platform. This is why we are now using Docker and Docker compose, and here is how to get started.

Note: All this stuff has been tested on Docker v1.10.0 and Docker compose v1.6.0.

First, let’s get the OpenPaaS sources from github. This is where docker descriptors are located:

git clone https://github.com/linagora/openpaas-esn.git
cd openpaas-esn

There are several ways to use docker and OpenPaaS as described in the documentation. Here we focus on how we can launch the platform from existing images which are available on the Docker Hub.

PROVISION=true DOCKER_IP=<YOUR_DOCKER_IP> docker-compose -f ./docker/dockerfiles/platform/docker-compose-images.yml up
  • PROVISION is set to true to generate all the required data in the platform (domains, users, communities, configuration, …)
  • DOCKER_IP is the IP you use to access your docker instance. You can skip it on a standard Linux distribution but you must use the docker-machine IP on OS X and Windows ( on the default machine).

Launching the platform may take some time, not only because you have a poor Internet connection to pull all the required docker images, but also because this will start MongoDB, Redis, Elasticsearch (x2), Apache Cassandra, Apache James, SabreDAV and a NodeJS server with all the OpenPaaS components.

Once started, you will be able to go on the OpenPaaS application on http://<YOUR_DOCKER_IP>:8080 and log in as user ‘admin@open-paas.org’ with ‘secret’ password.

You can now use the OpenPaaS platform, there are a lot of components available, just take a look around. You can also read the complete Docker documentation to see how you can configure the Apache James server (there is some active work on this part to ease the deployment and avoid any manipulation), your favorite mail client, etc…

At the same time, you can check this video which will show all these steps and many more: