caliopen web application.
This install is about how to install caliopen for a development usage.
Currently, the minimum backend requirements is:
- redis (or memcache)
- rabbitmq
- elasticsearch
- cassandra
- python2.7 with virtualenv
This documentation don't cover how to install those products on your distro.
Note
rabbitmq broker is optional depending on delivery mode set to direct or not in caliopen.yaml configuration.
Then you have to clone every component of caliopen.
mkdir caliopen
cd caliopen
git clone https://github.com/CaliOpen/caliopen.config.git
git clone https://github.com/CaliOpen/caliopen.core.git
git clone https://github.com/CaliOpen/caliopen.messaging.git
git clone https://github.com/CaliOpen/caliopen.smtp.git
git clone https://github.com/CaliOpen/caliopen.storage.git
git clone https://github.com/CaliOpen/caliopen.api.git
git clone https://github.com/CaliOpen/caliopen.ng.git
git clone https://github.com/CaliOpen/caliopen.web.git
Note
if you want to create pull request you should fork component and clone from your own github account.
Then you should create virtualenv and activate it.
source venv/bin/activate
for d in caliopen.config caliopen.core caliopen.messaging caliopen.smtp caliopen.storage caliopen.api caliopen.web
do
cd $d
python setup.py develop
if [ -e requirements.txt ] ; then
pip install -r requirements.txt
fi
cd ..
done
Compile angular app:
The web ui has been developed using AngularJS and live in it's own repository.
cd caliopen.ng source nactivate npm install bower install grunt build cd ..
..note:
"nactivate" is inspired by virtualenv to don't use bower globally.
the command ndeactivate will deactivate it.
This is not mandatory, you can use the way you use bower if you
prefer.
Configure the caliopen website.
cd caliopen.web
Copy the sample development.ini file to roll your own configuration parameters:
cp development.ini.sample development.ini
Setup the storage database:
caliopen -f development.ini.sample setup
Create a user:
caliopen create_user --help
caliopen -f development.ini create_user -e imported@email -p password -f firstname -l lastname
Then import a mailbox :
caliopen import --help
caliopen -f development.ini.sample import -p ~/gandiv4 -e imported@email -f maildir
Note
This will push message in the rabbitmq broker if direct keyword is set to False in delivery_agent configuration section.
Run the delivery agent :
python caliopen/web/bin/deliver.py -f development.ini
Note
Only apply if direct set to False in delivery_agent configuration section.
Currently the delivery agent consume message over rabbitmq. The delivery aims to be a daemon but for developer it run in it's own terminal. You can shutdown with ctrl-c when your rabbitmq queue is empty
Run the web interface :
pserve development.ini