Rapidpro Installation: Difference between revisions
From IHRIS Wiki
Line 12: | Line 12: | ||
<li> | <li> | ||
Postgresql and postgis installation | Postgresql and postgis installation | ||
<source lang=" | <source lang="bash"> | ||
$ sudo apt-get install postgresql | $ sudo apt-get install postgresql | ||
$ sudo apt-get install postgis | $ sudo apt-get install postgis | ||
Line 22: | Line 22: | ||
<li>Redis 2.8 or later installed and listening on localhost. By default the development server uses database 15. You may install this through debian package manager <source lang="xml">$ sudo apt-get install redis-server</source> or by downloading it on [http://redis.io/ redis website]</li> | <li>Redis 2.8 or later installed and listening on localhost. By default the development server uses database 15. You may install this through debian package manager <source lang="xml">$ sudo apt-get install redis-server</source> or by downloading it on [http://redis.io/ redis website]</li> | ||
<li>[http://lesscss.org/ lessc], the Less compiler. | <li>[http://lesscss.org/ lessc], the Less compiler. | ||
<source lang=" | <source lang="bash"> | ||
$ apt-get install npm | $ apt-get install npm | ||
$ npm install -g less | $ npm install -g less | ||
Line 28: | Line 28: | ||
</li> | </li> | ||
<li>[http://coffeescript.org/ coffee], the Coffee script compiler. You may also install this with | <li>[http://coffeescript.org/ coffee], the Coffee script compiler. You may also install this with | ||
<source lang=" | <source lang="bash"> | ||
$ sudo apt-get install coffeescript | $ sudo apt-get install coffeescript | ||
</source> | </source> | ||
Line 36: | Line 36: | ||
<li> | <li> | ||
<b>Create Temba User For PostgreSQL</b> | <b>Create Temba User For PostgreSQL</b> | ||
<source lang=" | <source lang="bash"> | ||
$ sudo -u postgres createuser temba --superuser --pwprompt -d | $ sudo -u postgres createuser temba --superuser --pwprompt -d | ||
$ sudo adduser temba | $ sudo adduser temba | ||
Line 42: | Line 42: | ||
</li> | </li> | ||
<li><b>Create temba database, add PostGIS</b> | <li><b>Create temba database, add PostGIS</b> | ||
<source lang=" | <source lang="bash"> | ||
Create the database as temba user: | Create the database as temba user: | ||
$ sudo -u temba psql --user=temba postgres | $ sudo -u temba psql --user=temba postgres | ||
Line 50: | Line 50: | ||
</source> | </source> | ||
Now connect as superuser that can install extensions | Now connect as superuser that can install extensions | ||
<source lang=" | <source lang="bash"> | ||
$ sudo apt-get install postgresql-contrib-X.Y #replace X.Y with version number i.e 9.3 | $ sudo apt-get install postgresql-contrib-X.Y #replace X.Y with version number i.e 9.3 | ||
$ sudo -u temba psql --user=temba postgres | $ sudo -u temba psql --user=temba postgres | ||
Line 66: | Line 66: | ||
<b>Clone Rapidpro</b><br> | <b>Clone Rapidpro</b><br> | ||
Now clone the RapidPro repository and link up the development settings: | Now clone the RapidPro repository and link up the development settings: | ||
<source lang=" | <source lang="bash"> | ||
$ git clone git@github.com:rapidpro/rapidpro.git | $ git clone git@github.com:rapidpro/rapidpro.git | ||
$ cd rapidpro | $ cd rapidpro | ||
Line 72: | Line 72: | ||
</source> | </source> | ||
NB:open the file temba/settings.py to make sure that it was created,if its missing or empty,do this | NB:open the file temba/settings.py to make sure that it was created,if its missing or empty,do this | ||
<source lang=" | <source lang="bash"> | ||
$ cp temba/settings.py.dev temba/settings.py | $ cp temba/settings.py.dev temba/settings.py | ||
</source> | </source> | ||
Line 94: | Line 94: | ||
<li><b>Build Virtual Environment</b><br> | <li><b>Build Virtual Environment</b><br> | ||
You should always use a virtual environment to run your RapidPro installation. The pinned dependencies for RapidPro can be found in pip-freeze.txt. You can build the needed environment as follows (from the root rapidpro directory): | You should always use a virtual environment to run your RapidPro installation. The pinned dependencies for RapidPro can be found in pip-freeze.txt. You can build the needed environment as follows (from the root rapidpro directory): | ||
<source lang=" | <source lang="bash"> | ||
$ sudo apt-get install python-virtualenv postgresql-server-dev-9.3 python-dev ncurses-dev | $ sudo apt-get install python-virtualenv postgresql-server-dev-9.3 python-dev ncurses-dev | ||
$ cd /path/to/your/root/directory/of/rapidpro | $ cd /path/to/your/root/directory/of/rapidpro | ||
Line 105: | Line 105: | ||
<b>Sync your database</b><br> | <b>Sync your database</b><br> | ||
You should now be able to run all the migrations and initialize your development server. This takes a little while on RapidPro as syncdb also creates and initializes all the user groups and permissions. | You should now be able to run all the migrations and initialize your development server. This takes a little while on RapidPro as syncdb also creates and initializes all the user groups and permissions. | ||
<source lang=" | <source lang="bash"> | ||
(env)$ python manage.py syncdb | (env)$ python manage.py syncdb | ||
</source> | </source> | ||
Line 111: | Line 111: | ||
<li> | <li> | ||
<b>If you want to create a super user,run this command while the env is still activated</b> | <b>If you want to create a super user,run this command while the env is still activated</b> | ||
<source lang=" | <source lang="bash"> | ||
(env)$ python manage.py createsuperuser | (env)$ python manage.py createsuperuser | ||
</source> | </source> | ||
Line 118: | Line 118: | ||
<b>Run development server</b><br> | <b>Run development server</b><br> | ||
At this point you’ll be able to run the development server and run RapidPro. It will be available at http://localhost:8000 or you may specify a different port number if you wish to change the default port number. | At this point you’ll be able to run the development server and run RapidPro. It will be available at http://localhost:8000 or you may specify a different port number if you wish to change the default port number. | ||
<source lang=" | <source lang="bash"> | ||
(env)$ python manage.py runserver 0.0.0.0:8000 | (env)$ python manage.py runserver 0.0.0.0:8000 | ||
</source> | </source> |
Revision as of 07:10, 15 August 2016
Introduction and Overview
RapidPro is an Open Source platform that allows anyone to build interactive messaging systems using an easy visual interface. A video is worth a thousand words and this brief video introduction will give you an idea of what is possible.
Installation
To install Rapidpro,follow the following steps
- Prerequisites Installation
- PostgreSQL 9.3 or later along with the PostGIS extensions. You may refer to Django’s installation instructions to help get this working or you may just run below commands:
- Postgresql and postgis installation <source lang="bash"> $ sudo apt-get install postgresql $ sudo apt-get install postgis $ sudo apt-get install postgresql-X.Y-postgis-2.1 #replace X.Y with the version number of postgresql </source>
- Redis 2.8 or later installed and listening on localhost. By default the development server uses database 15. You may install this through debian package manager <source lang="xml">$ sudo apt-get install redis-server</source> or by downloading it on redis website
- lessc, the Less compiler. <source lang="bash"> $ apt-get install npm $ npm install -g less </source>
- coffee, the Coffee script compiler. You may also install this with <source lang="bash"> $ sudo apt-get install coffeescript </source>
- PostgreSQL 9.3 or later along with the PostGIS extensions. You may refer to Django’s installation instructions to help get this working or you may just run below commands:
- Create Temba User For PostgreSQL <source lang="bash"> $ sudo -u postgres createuser temba --superuser --pwprompt -d $ sudo adduser temba </source>
- Create temba database, add PostGIS <source lang="bash"> Create the database as temba user: $ sudo -u temba psql --user=temba postgres postgres=> create database temba; CREATE DATABASE \q </source> Now connect as superuser that can install extensions <source lang="bash"> $ sudo apt-get install postgresql-contrib-X.Y #replace X.Y with version number i.e 9.3 $ sudo -u temba psql --user=temba postgres $ postgres=# \c temba $ You are now connected to database "temba" as user "psql". $ temba=# create extension postgis; $ CREATE EXTENSION $ temba=# create extension postgis_topology; $ CREATE EXTENSION $ temba=# create extension hstore; $ CREATE EXTENSION </source>
-
Clone Rapidpro
Now clone the RapidPro repository and link up the development settings: <source lang="bash"> $ git clone git@github.com:rapidpro/rapidpro.git $ cd rapidpro $ ln -s temba/settings.py.dev temba/settings.py </source> NB:open the file temba/settings.py to make sure that it was created,if its missing or empty,do this <source lang="bash"> $ cp temba/settings.py.dev temba/settings.py </source> NB:You will need to confirm if the database name,user and password in the settings.py matches the one created during postgresql installation,the following is the default database name,database user and password inside temba/settings.py <source lang="xml"> DATABASES = { 'default': { 'ENGINE': 'django.contrib.gis.db.backends.postgis', 'NAME': 'temba', 'USER': 'temba', 'PASSWORD': 'temba', 'HOST': 'localhost', 'PORT': , 'ATOMIC_REQUESTS': True, 'OPTIONS': { } } } </source> - Build Virtual Environment
You should always use a virtual environment to run your RapidPro installation. The pinned dependencies for RapidPro can be found in pip-freeze.txt. You can build the needed environment as follows (from the root rapidpro directory): <source lang="bash"> $ sudo apt-get install python-virtualenv postgresql-server-dev-9.3 python-dev ncurses-dev $ cd /path/to/your/root/directory/of/rapidpro $ virtualenv env $ source env/bin/activate (env)$ pip install -r pip-freeze.txt </source> -
Sync your database
You should now be able to run all the migrations and initialize your development server. This takes a little while on RapidPro as syncdb also creates and initializes all the user groups and permissions. <source lang="bash"> (env)$ python manage.py syncdb </source> - If you want to create a super user,run this command while the env is still activated <source lang="bash"> (env)$ python manage.py createsuperuser </source>
-
Run development server
At this point you’ll be able to run the development server and run RapidPro. It will be available at http://localhost:8000 or you may specify a different port number if you wish to change the default port number. <source lang="bash"> (env)$ python manage.py runserver 0.0.0.0:8000 </source> -
Credits allocation to user accounts
There are some features that by default are disabled until an account get allocated some credits by the administrator.E.g An account can not invite users to join unless that account has been allocated atleast 100,000 credits,similarly the workflow import feature is disabled until an account get allocated some credits.
To allocate credits to an account login to Rapidpro as an administrator,you will be taken directly to an account/Organization management window,click the organization name as below:
Then Click the TopUps button as in the picture below:
Click the Add TopUps button as in the picture below: