Quick Developer Box VM Setup

To get started with Mifos X Development, we often have to deal with initial setup problem. The initial system setup, installing and configuring the development tools, downloading the dependent libraries, etc need to be repeated for each new developer in your team. There is no substitute to the learning involved in doing so, but for a quick and easy setup, the recommended way is to use a pre-built virtual machine. The Mifos X Developer Box project has yielded a vagrant image which has all the required steps already done:

Developer Tools and Software

  1. Git VCS
  2. Java JDK
  3. Eclipse SDK
  4. MySQL DBMS

Mifos X Community App (Frontend)

  1. Cloning Community App repo
  2. Installing NodeJS
  3. Installing bower
  4. Installing grunt-cli
  5. Downloading & configuring dependencies (bower install)

Mifos X Platform Provider (Backend)

  1. Cloning MifosX Platform repo
  2. Eclipsifying the mifosng-provider project (creation of eclipse project files)
  3. Downloading and configuring Gradle dependencies

Setup Instructions

All of the above steps which need to be done normally have been automated through a Packer build. Here's how to get started with the Developer Box:

  1. Install Vagrant (http://docs.vagrantup.com/v2/installation/) and VirtualBox (https://www.virtualbox.org/wiki/Downloads)
  2. In a terminal, run:
    $ vagrant init terencemo/mifosx-devbox
    This will create a Vagrantfile in your current folder. This has the Vagrant configuration to help you  get started
  3. By default, Vagrant runs in headless mode, which means that the GUI is disabled. To enable it, open Vagrantfile in your favorite editor and uncomment (remove leading # from) the following lines:

    config.vm.provider "virtualbox" do |vb|
      # Don't boot with headless mode
      vb.gui = true

      # Use VBoxManage to customize the VM. For example to change memory:
      vb.customize ["modifyvm", :id, "--memory", "1024"]
    end
    The line vb.gui = true is important. vb.customize is optional but recommended will set the memory of the VM to 1Gb. You can set it to more if available (always a good idea)

  4. Run this in a terminal
    $ vagrant up
    This will download and start up the VM for the first time
  5. Now you can either login through the GUI (vagrant/vagrant) or use $ vagrant ssh