Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


Note: Mifos X Platform is now being developed as the Apache Fineract project. For updated instructions/information please go to 

Before you try to build, make sure you have the correct tools, and have configured these tools correctly. See Prerequisite for more details.

Get the Source

For either the Mifos X Financial Service Engine, or the Mifos X Community App getting the source is similar.

Master and Develop branches

By default when using git you will always have a branch named 'master'. On Mifos X we use another branch for any current development which we want to put in the next release. It is called 'develop'. You should checkout this branch also.

  • master: represents the latest stable release of Mifos X.

  • develop: represents the bleeding edge development changes planned for next release of Mifos X. 


On this page:

Table of Contents

Initial setup

If you don't have a github account already then you need to sign up and create one on on (free accounts are fine).

Once you have a github account, the next step is to clone it from 

If you are working on Pentaho reports, you need to clone the code from

 & For community-app you need to clone the code from 
See for help on forking in github.

Clone the repository

Create a directory in which you want the cloned project to exist within: e.g. in directory ~/repo

Code Block
git clone [fork repository url]


Configure remotes

When a repository is cloned, it has a default remote called origin that points to your fork on GitHub, not the original repository it was forked from. To keep track of the original repository, you should add another remote named upstream:

The easiest way is to use the https url:

Code Block
Go inside the incubator-fineract/fineract-provider folder
    git remote add upstream 
or If you are working on Pentaho reports,then 
    git remote add upstream
& For community-app, go inside community folder 
    git remote add upstream

or if you have ssh set up you can use that url instead:

Code Block
git remote add upstream[incubator-fineract | community-app].git 
or If you are working on Pentaho reports,then 
git remote add upstream[incubator-fineract | community-app].git 

Keep up to date

There will be development changes to both repositories almost every day for the foreseeable future so its important to keep your fork of the software up to date with the latest changes.

To pull in upstream changes from repository you forked:

Code Block
git checkout develop
git fetch upstream
git merge upstream/develop


You should not have any local changes on your master branch, if you do, use rebase!

Once you have pulled all latest changes and your build was successful, push the just merged changes to the develop branch on your fork.

Code Block
git push origin develop


After setting up your environment, and downloading the source, refer to the following per-project instructions on how to build, or see Eclipse Setup or IntelliJ IDEA Setup to configure your IDE:

Mifos X Financial Service Engine

We use Gradle to build the Mifos X Financial Service Engine.

To run a build change into the directory [your project root]/incubator-fineract/fineract-provider, and execute:

Code Block
cd ~/repo/incubator-fineract/fineract-provider
./gradlew dist

This command will download all dependencies, compiles all sources, and executes all unit tests.

To run integration tests make sure you have installed and setup the database, execute:

Code Block
./gradlew integrationTest

Mifos X Community App

grunt Grunt is used to build production ready artefacts:artifacts:


Please Download and Install Ruby (Note: Compatible version 2.0 and above)

Code Block
cd ~/repo/community-app
# Pull run- and build time dependencies

Run the below commands one by one.
 	npm install -g bower
 	npm install -g grunt-cli
	bower install
	npm install
	gem sources -a
	gem install bundler
	bundle install
# Create a production ready artefactartifact
	grunt prod


Go to for instructions on installing Bower.

For development purposes you can serve the application by simply calling:

Code Block
cd ~/repo/community-app
grunt serve


Then to log in,

http://localhost:9002/?baseApiUrl=https://localhost:8443&tenantIdentifier=default#/ OR

http://localhost:9000/?baseApiUrl=https://localhost:8443#/ OR  OR