Instructions for pulling the sources, building and starting Apache Fineract CN for the first time.
This guide assumes that default OS is Debian/Ubuntu flavours of Linux although they can be easily adapted to other hosts.
Step 1: What You Will Need
Install Google Chrome On Ubuntu 16.06 LTS
Ensure that you have Oracle Java SDK 8. You can use this tutorial to do that.
Install git using This Article
Install maven using mkyong & Ensure that artifacts are in $USER_HOME/.m2/repository
Use sdkman to install Gradle 4.5
Install cassandra 3.11 using this guide
Ensure you have Node 6.10.0+ and NPM 3+ installed.
Install Nginx using this guide
Install Node packages using npm i
Step 1: Adjusted for a mac user
- Install Google Chrome
- Make sure you have Oracle Java SDK 8. See this tutorial at mkyong.
- verify you have the correct java with > java -version # should display
java version "1.8.0_192" or any 1.8.*
- verify you have the correct java with > java -version # should display
- Homebrew approach (not the only package manager but one that is preferred on mac)
Install homebrew to make life easier See how to instructions.
on older macs, you may first need to >xcode-select --install
Homebrew has "kegs" for each of the various libraries and software pieces
> Brew help #gets the list of commands
> brew install mysql@5.7
and to start the service, >brew services start mysql@5.7
> brew git, maven, gradle, cassandra, npm node #installs them all
alternatively you could install them one at a time and be careful of the versions as this will take the most recent stable versions as default
Step 2: Clone The Repositories
Fork the Apache Fineract CN repositories to yourGithubHandle
Run the script using `bash script.sh yourGithubHandle`,
Feedback Note : Ensure that you get BUILD SUCCESSFUL after iteration for EACH repository. Also ensure that artifacts show up in $USER_HOME/.m2/repository/org/apache/fineract/cn/
Step 3: Orchestrate Microservices Using The demo-server
cd into `integration-tests/fineract-cn-demo-server/build/libs/`. You will use Use A. OR B. below to build the demo-server jar.
A. You could use the demo-server using the microservice datastores . Use the command `java -jar -Ddemoserver.provision=true demo-server-0.1.0-BUILD-SNAPSHOT.jar`
OR
B. You could use your local data stores , i.e. locally-installed MySQL and Cassandra ( with the demoserver.persistent environment variables ) to build the demo-server. Note that your username and password for mysql and cassandra which you’ve installed on your machine will be useful at this point. Make sure Cassandra and MySQL services are started. Run the following command;
First run, use i. to create MySQL and Cassandra local databases
i. `java -Ddemoserver.provision=true -Ddemoserver.persistent=true -Dcustom.cassandra.contactPoints=127.0.0.1:9042 -Dcassandra.cluster.user=cassandra -Dcassandra.cluster.pwd=password -Dcustom.mariadb.host=localhost -Dcustom.mariadb.user=root -Dcustom.mariadb.password=mysql -jar demo-server-0.1.0-BUILD-SNAPSHOT.jar`
Subsequent runs, use ii. to use the local databases created on i.. If the first run failed, delete any residual database 'seshat' and/or 'playground' in MySQL and Cassandra, and start over i. until it goes through; then start using ii. going forward.
ii. `java -Ddemoserver.persistent=true -Dcustom.cassandra.contactPoints=127.0.0.1:9042 -Dcassandra.cluster.user=cassandra -Dcassandra.cluster.pwd=password -Dcustom.mariadb.host=localhost -Dcustom.mariadb.user=root -Dcustom.mariadb.password=mysql -jar demo-server-0.1.0-BUILD-SNAPSHOT.jar`
Tip: On average the build will take at least 30 - 40 mins to when building on 8 (x86-64) dedicated cores, 32 GB of memory and an SSD drive
Be Patient While This Runs. When Your Logs Show Up;
……
……
……
Tip: These endpoints below signifies the completion of the build. Only after this has occurred can you move to the next step
“INFO o.e.jetty.server.AbstractConnector - StoppedServerConnector@1bdb0376{HTTP/1.1,[http/1.1]}
Identity Service: http://localhost:2021/identity/v1
Office Service: http://localhost:2023/office/v1
Customer Service: http://localhost:2024/customer/v1
Accounting Service: http://localhost:2025/accounting/v1
Portfolio Service: http://localhost:2026/portfolio/v1
Deposit Service: http://localhost:2027/deposit/v1
Teller Service: http://localhost:2028/teller/v1
Reporting Service: http://localhost:2029/reporting/v1
Cheque Service: http://localhost:2030/cheques/v1
Payroll Service: http://localhost:2031/payroll/v1
Group Service: http://localhost:2032/group/v1
Notification Service: http://localhost:2033/notification/v1
Step 4: Test The Fims Web App
Open a new terminal And cd into ‘integration-tests/fineract-cn-fims-web-app'
Run ‘npm i’
Feedback Note :
If there are packages like @angular-devkit or @rxjs which you aren’t installed, then do so manually at this point;
Run ’npm run dev’
̂̂̂̂> fims@0.1.0 dev /home/ikamga/Documents/Three/Code/integration-tests/fims-web-app
> ng serve --verbose --proxy-config proxy.conf.json
** NG Live Development Server is listening on localhost:4200, open your browser on http://localhost:4200/ ** ̂
……
……
……
index.html 3.69 kB 0
chunk {0} index.html 1.03 kB [entry] [rendered]
webpack: Compiled successfully.
Note that, if you are running the system from a remote server, then replace 'localhost' in 'http://localhost' in lines 3,10,17,etc with the IP address of your server in your proxy.conf.json file.
Feedback Note : webpack: Compiled successfully.
Open http://localhost:4200 on fims - backoffice
Login to the platform using the credentials,
Tenant : playground
Username : operator
Password : init1@l
Feedback Note : You should be on fims - backoffice at http://localhost:4200/quickAccess
Congratulations! You’ve Successfully Ran Apache Fineract CN
Tips for the next build
Clean up your tmp folder after every build
Use: sudo rm -fr /tmp/*
Ensure that all relevant ports are free.
Relevant ports: 3306, 4200, 61616, 2021, 2022, 2022, 2023, 2024, 2025, 2026, 2028, 2029, 2030, 2031, 2032, 2033
To view all ports: netstat -plnt
To free specific ports: kill -9 {port number} {port number}
Restart the system if necessary.
Related articles
Useful external links