This is the source to build an scenario to run OpenChange with REST API backend with the following containers:
oc-mysql
: MySQL serveroc-restserver
: RESTful API Serveroc-openchange
: Samba and OpenChange Server
Make sure to have OpenChange source in jkerihuel/mapistore-python
branch in the ../openchange
directory and get the latest docker
software installed.
To create mysql docker container:
$ make mysql
To build from source and launch the REST server:
$ make restserver
To build from source, provision and launch OpenChange server:
$ make openchange
That should leave your system ready to connect to the OpenChange instance on
the oc-openchange
container
The communication between Outlook and OpenChange can be established by
modifying the hosts file in Windows, making openchange.zentyal.lan look at
the oc-openchange
container's IP address. This address can be obtained by
running:
$ docker inspect oc-openchange | grep IPAddress
For instance, if our container's address is 172.17.0.2
, we will have to add
to the hosts file the following line:
172.17.0.2 openchange.zentyal.lan
Another way of establishing this connection is by changing the DNS server
address of your Windows machine to the oc-openchange
container's address.
Changes in the OpenChange code (in ../openchange
can be applied in the
oc-openchange
container by simply killing the Samba process and running:
$ make install
$ make run
Although the provision of the REST API backend is carried out when making the
oc-openchange
container, one might one to deprovision and reprovision it
again.
The first thing to do is cleaning the temp directory in oc-restserver
:
$ rm openchange/python/mock/rest/temp/*
$ make restserver
The REST API backend can be deprovisioned and reprovisioned by killing the
Samba process in oc-openchange
and running:
$ /usr/lib/python2.7/dist-packages/openchange/backends/rest.py --deprovision --username=openchange
$ /usr/lib/python2.7/dist-packages/openchange/backends/rest.py --provision --username=openchange
$ make run
To run these commands without sudo
it is required to have your user
in docker group, restart docker service and restart user session.