Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

NDI Logo


Table of Contents

  1. Introduction
  2. CiviCRM Installation
  3. Installing NDI Civi Extension
  4. Additional Modules


The Civi DemTool takes the powerful, popular and well established CiviCRM contact management system, adds some NDI-created custom extensions, and then another set of additional publically contributed extensions to make it easy to use for typical political, civic or governmental groups in the developing world.” Civi enables civic organizations, government officials, and political parties to track, analyze, connect with and respond to the needs of their constituents and members online. This repository contains instructions for installing the basic CiviCRM software, followed by how to install the NDI-specific Civi extension found in this repository. Further Civi extensions that are used by NDI are listed at the bottom.

Installing CiviCRM

There are several ways to install CiviCRM. Some of them can be found here. NDI uses Drupal as its preferred Content Management System (CMS) for hosting CiviCRM (a full list of CiviCRM-compatible CMS's can be found here). Specifically, NDI uses Aegir as a multi-hosting solution for Drupal sites that provides an easy interface for creating additional Civi sites. The instructions below detail the most straightforward way to install CiviCRM using Drupal, or alternatively from an image on AWS for users who use this service.

Installing from AWS AMI

If you use Amazon Web Services (AWS), a prebuilt version of Civi can be found here. These images contain an already installed version of CiviCRM ready for deployment on an Amazon EC2 server. If you use this solution, you can skip the section labeled Installing using Drupal.

To install from an AMI image, follow the link above and select the AMI for the region you want to host in. Clicking on the AMI link will take you to the instance deployment page. Your server size will depend on the amount of usage you expect on your site. A test site can run on a t2.micro. To access the site, go to the public ip generated for the EC2 instance. The username by default is 'user', and the password can be found by right-clicking on the instance and going to 'Instance Settings' > 'Get System Log'.

Installing using Drupal

NDI installs Civi using Drupal as a CMS. For the lastest Drupal install instructions, see here.

Once Drupal is installed, follow the steps here to install CiviCRM.

Installing DemTools CiviCRM Extension

Once CiviCRM is installed, navigate to where the application has been installed and go into the directory civicrm/ext. This directory is where all extensions will be located. To add an extension, simply use Git to clone a copy of the extension inside this folder.

Much of the custom functionality NDI provides to adapt Civi to the needs of political partners has been consolidated into one “DemTools CiviCRM” extension. To install the DemTools CiviCRM extension, copy this repository into the civicrm/ext directory by navigating there and then running git clone After doing this, log in to Civi, and go to https://name-of-your-site/en/civicrm/admin/extensions to see the extensions present. The “DemTools CiviCRM” should now appear. From here, extensions can be installed to enable, or disabled.

Additional Recommended Extensions

There are a wide range of useful community-created CiviCRM extensions that NDI uses to make the system easier to use, adapt for typical political or governmental organizations needs, or add functionality for the developing world. Below are additional Civi extensions that can be installed to add these NDI-recommended capabilities.

The process for installing these will be the same as installing the NDI Civi extension - simply go to civicrm/ext and clone the extension, substituting in the repository url for the extension you are installing.

Other Extensions To Consider:

In addition to the extensions above, listed below are other extensions you can consider installing to extend Civi's functionality.

Location Extensions

The following country-specific extensions load updated and complete lists of states/provinces and counties for various countries where NDI has supported implementation of Civi. These extensions can be loaded to better allow users in these countries to accurately list the location of their contacts, activities, and events.


DemTools CiviCRM extention



No releases published


No packages published

Contributors 4