Git Product home page Git Product logo

fineract-setup's Introduction

Setup of the Mifos/Fineract stack in the AWS cloud with docker containers

This guide provides instructions how to setup the Mifos/Fineract project in the AWS cloud using docker containers.

Note: Fineract and Mifos basically refer to the same project. Mifos is the name of the original project. Fineract is the project's name within apache (Apache Fineract); it is based on the Mifos code-base.

The project can be found here:

It is quite complex to get the project running, as there are many dependencies to tools and libraries. Currently there is no complete setup guideline yet. That's why we decided to create a separate repo where we collect our setup experiences and provide guidelines for a complete setup from scratch.

Note: We performed the setup in an Ubuntu VM. All scripts and instructions provided thus refer to Ubuntu.

PreRequisits:

Ubuntu 16.04 VM, 64bit (you can take a different version of linux, but at your own risk) 20 GB of VM disk space are sufficient

Local Setup (Code & Build)

Install Java 8 and IntelliJ IDEA

scripts/tools/install_Java_and_IDEA.sh

Script is base on: https://stackoverflow.com/questions/30130934/how-to-install-intellij-idea-on-ubuntu We used the Edit2 version of the script on stackoverflow. You find the version we used in the folder.

Note: The script will install JDK 8 (Oracle) for you as well (Java 8 section uncommented in script)!

Note: By default the script will install the community edition of IntelliJ IDEA. If you want to install the ultimate edition you can uncomment the block of the script that asks for the version to be installed (or just set the variable directly to U instead of C)!

Install Maven

Note: Basically this step should not be needed, because a maven-wrapper should be enough. Due to certain 3rd party libraries (javamoney-lib) it is however needed to install maven at the moment.

scripts/tools/install_maven.sh

Script is base on: https://www.mkyong.com/maven/how-to-install-maven-in-ubuntu/

Install Node.js + npm

Note: This is needed for the firms-web-app (the Angular UI that is provided in the fineract project).

scripts/tools/install_nodeJs.sh

Script is based on: https://nodejs.org/en/download/package-manager/

Node.js version 6.x will be installed by the script.

Clone all repos and build the micro-services

The project has a micro-service architecture; the micro-services are represented by modules (see: https://www.jetbrains.com/help/idea/2017.1/about-modules.html).

Building all the different modules has to be done in a certain order, as several micro-services have dependencies on others. Thus, certain modules have to be available as dependencies to other modules. This is achieved by building the modules and storing them in the local maven-repository (more info on maven-local: https://www.mkyong.com/maven/where-is-maven-local-repository/).

In the demo-server module you find the script demo-server/scripts/Unix/initial-setup.sh (https://github.com/mifosio/demo-server/tree/develop/scripts/Unix). However, this script does not work as is, so we adapted it and provide a working version in the scripts folder.

  1. Copy initial-project-setup-ubuntu.sh to an empty folder where you want to setup the project (the code).
  2. Run script like this: initial-project-setup-ubuntu.sh mifosio

Note: mifosio as parameter defines the github-account to be used in the URL for pointing to the repos.

The script will clone, build and publish (to maven-local) all the repos in the right order. The script will also create a certain folder structure for the project.

Import code modules into IntelliJ IDEA

  1. Startup IntelliJ IDEA
  2. Open one of the modules (e.g. customer) as project
  3. Import other modules by: New >> Open module from existing source

Running the micro-services using Docker

Install Docker (Community Edition):

scripts/tools/install_docker.sh

Script is based on: https://store.docker.com/editions/community/docker-ce-server-ubuntu

(If the link above does not work you find a backup of the install instructions in the Backup folder.)

Deployment to docker

Pull core service containers

Fineract uses 2 databases: mariadb and cassandra. As several of the micro-services use these databases they have to run before starting the micro-services.

Furthermore eureka (service registry) and activemq (messaging bus) are needed as global services.

Pull the following docker containers: rmohr/activemq:5.13.2 netflixoss/eureka:1.3.1 mysql:5.7.17 cassandra:3.0

Those are the core containers you need.

Note: mariadb is a derrivat of mysql, thus you can use mysql (up to version 5.7.x) instead of mariadb. You can also use mariadb.

Build micro-services docker containers

scripts/build_all_docker_containers.sh

Copy the script to your code folder and run it like this: ./build_all_docker_containers.sh mifosio

Note: The parameter will define the name of the docker container.

The script will generate a docker file for each micro-service and then automatically build a docker container using the generated docker file. The jar file(s) of the micro-service will be packed into the container.

Startup core containers and compose micro-service containers

IMPORTANT: Instructions not finished yet!

Utilizing the AWS cloud

Deploymet to AWS-Cloud

IMPORTANT: Instructions not finished yet!

  1. Make the docker-containers available in a docker registry (e.g. docker-hub)
  2. Configure the AWS Task-Definition so the right docker images are pulled

fineract-setup's People

Contributors

da-kami avatar si87 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

fineract-setup's Issues

Unfinished instructions

Hi, This has been the closest I've come yet to getting a POC Fineract environment up and running, and love the idea of using containers. Great work on putting this together.

Do you have any plans to finish the instructions, specifically for:

"Startup core containers and compose micro-service containers
IMPORTANT: Instructions not finished yet!"

Thanks

G

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.