Mifos X Platform 24.04.30 - Installation Instructions on Linux Ubuntu 24.04 LTS
Objective
Provide clear instructions in order to Install the Mifos Platform 24.04.30 Release on a Linux Ubuntu 24.04 LTS Operating System, these instructions should ideally be executed by users with basic technical skills.
Target Audience
Username | User description |
General Public | User should have basic knowledge about Linux commands. |
System requirements
Hardware:
|
Software:
|
Deployment Architecture
This is a graphical representation of the components that will be installed, they are highlighted in yellow, and the others put in the graphic as a reference and they can be used for extending the functionality.
Instructions
*The following commands must be verified in a text plain editor before being executed.
Install Java Zulu JDK 17
sudo apt install gnupg ca-certificates curl
curl -s https://repos.azul.com/azul-repo.key | sudo gpg --dearmor -o /usr/share/keyrings/azul.gpg
echo "deb [signed-by=/usr/share/keyrings/azul.gpg] https://repos.azul.com/zulu/deb stable main" | sudo tee /etc/apt/sources.list.d/zulu.list
sudo apt update
sudo apt install zulu17-jdk
java -version
You should see something like below and if so the your java installation is successfull
openjdk version "17.0.12" 2024-07-16 LTS
OpenJDK Runtime Environment Zulu17.52+17-CA (build 17.0.12+7-LTS)
OpenJDK 64-Bit Server VM Zulu17.52+17-CA (build 17.0.12+7-LTS, mixed mode, sharing)
Get the Apache Tomcat version 10.1 which is the Application Server required to run Mifos X 23.12-RELEASE
PLEASE NOTE
The latest tomcat release will change and the link below may become invalid.
If wget fails, get the correct link by going to Index of /tomcat/tomcat-10 for example at time of writing this, the available tomcat-10 is v10.1.30
or if above link fails you can use the archives of tomcat-10 with the link below
Take the following steps on the downloaded file
untar it and delete the tar file
mv the file to /usr/share/tomcat10
delete the folders found int the webapps folder to be replaced by the files of MifosX
the commands below will do the steps above
sudo wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.30/bin/apache-tomcat-10.1.30.tar.gz &&
sudo tar -zxvf apache-tomcat-10.1.30.tar.gz &&
sudo rm -f apache-tomcat-10.1.30.tar.gz &&
sudo mv apache-tomcat-10.1.30 /usr/share/tomcat10 &&
sudo rm -r /usr/share/tomcat10/webapps/ROOT &&
sudo rm -r /usr/share/tomcat10/webapps/docs &&
sudo rm -r /usr/share/tomcat10/webapps/examples &&
sudo rm -r /usr/share/tomcat10/webapps/host-manager &&
sudo rm -r /usr/share/tomcat10/webapps/manager
Download the Mifos X 24.04.30 package
cd $HOME
unzip mifosplatform-24.04.30.RELEASE.zip
Rename the WebApp folder to ROOT and Copy it to the tomcat10/webapps/ folder which will be used as the back office (UI)
mv mifosplatform-24.04.30.RELEASE/webapp/ mifosplatform-24.04.30.RELEASE/ROOT
sudo cp -r mmifosplatform-24.04.30.RELEASE/ROOT /usr/share/tomcat10/webapps/
Copy the Apache Fineract binary
sudo cp -r mifosplatform-24.04.30.RELEASE/fineract-provider.war /usr/share/tomcat10/webapps/
cd $HOME
Download the mariadb drive 3.3.2, copy the driver to the tomcat10/lib/ folder and Install MariaDB v11.2 Database server
sudo wget https://downloads.mariadb.com/Connectors/java/connector-java-3.3.2/mariadb-java-client-3.3.2.jar && sudo cp -r mariadb-java-client-3.3.2.jar /usr/share/tomcat10/lib
sudo apt install software-properties-common -y &&
curl -LsS -O https://downloads.mariadb.com/MariaDB/mariadb_repo_setup &&
sudo bash mariadb_repo_setup --mariadb-server-version=11.2
sudo apt update
sudo apt install mariadb-server mariadb-client -y
confirm your installation by running the command below
sudo systemctl status mariadb
Secure the installation setting a password for the root user
sudo mariadb-secure-installation
if you wish to change the ports and other configurations run
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf and restart the database server
sudo systemctl restart mariadb.service
Connect to MariaDB in order to create the two databases required by Apache Fineract
mariadb -uroot -p
CREATE database `fineract_tenants` ;
CREATE database `fineract_default` ;
exit
Export the environment variables required by Apache Fineract in order to use the root password that was set in the step “h”, also - MXD-121Getting issue details... STATUS we are disabling the SSL because this is a demonstration. We encourage you to use the secure connection by enabling HTTPS.
export FINERACT_DEFAULT_TENANTDB_PWD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
export FINERACT_HIKARI_PASSWORD=skdcnwauicn2ucnaecasdsajdnizucawencascdca
export FINERACT_SERVER_SSL_ENABLED=false
export FINERACT_SERVER_PORT=8080
Note: The username and password are shown as an example, you must enter your own username and password.
Run the command for executing the Apache Tomcat
./catalina.sh run
Open the Mifos X 24.04 User Interface on a web browser
The credentials for login:
user: mifos
password: password
Enjoy and give us feedback.
TO USE HTTPS YOU WILL NEED TO : Obtain a domain validation certificate from a certificate authority like Let's Encrypt
You will have to enable SSL as below
export FINERACT_SERVER_SSL_ENABLED=true
export FINERACT_SERVER_PORT=8443 or your chosen port
For example if your URL is subdomain.domain.com, edit the /usr/share/tomcat10/conf/server.xml file to read as below
<?xml version="1.0" encoding="UTF-8"?>
<Server port="8005" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<GlobalNamingResources>
<Resource name="UserDatabase"
auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
<Resource type="javax.sql.DataSource"
name="jdbc/fineract_tenants"
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
driverClassName="org.mariadb.jdbc.Driver"
url="jdbc:mariadb://localhost:3306/fineract_tenants"
username="root"
password="skdcnwauicn2ucnaecasdsajdnizucawencascdca"
initialSize="3"
maxActive="10"
maxIdle="6"
minIdle="3"
validationQuery="SELECT 1"
testOnBorrow="true"
testOnReturn="true"
testWhileIdle="true"
timeBetweenEvictionRunsMillis="30000"
minEvictableIdleTimeMillis="60000"
logAbandoned="true"
suspectTimeout="60"/>
</GlobalNamingResources>
<Service name="Catalina">
<Connector
port="443"
protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="200"
scheme="https"
secure="true"
SSLEnabled="true"
defaultSSLHostConfigName="subdomain.domain.com"
clientAuth="false"
sslProtocol="TLS"
URIEncoding="UTF-8"
compression="force"
acceptCount="100"
minSpareThreads="25"
maxSpareThreads="75"
enableLookups="false"
disableUploadTimeout="true"
maxHttpHeaderSize="8192"
compressableMimeType="text/html,text/xml,text/plain,text/javascript,text/css">
<SSLHostConfig
hostName="subdomain.domain.com"
protocols="+TLSv1,+TLSv1.1,+TLSv1.2">
<Certificate
certificateFile="/etc/letsencrypt/live/subdomain.domain.com/cert.pem"
certificateKeyFile="/etc/letsencrypt/live/subdomain.domain.com/privkey.pem"
certificateChainFile="/etc/letsencrypt/live/subdomain.domain.com/chain.pem"/>
</SSLHostConfig>
</Connector>
<Connector port="8080"
protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxParameterCount="1000"
/>
<Engine name="Catalina" defaultHost="localhost">
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/>
</Realm>
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="localhost_access_log"
suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
</Engine>
</Service>
</Server>
|
---|
Create the /usr/share/tomcat10/bin/setenv.sh file in which you can edit parameters like passwords and others using the command
sudo nano /usr/share/tomcat10/bin/setenv.sh edit the file to look as show below
export FINERACT_NODE_ID="1" export FINERACT_HIKARI_DRIVER_SOURCE_CLASS_NAME="org.mariadb.jdbc.Driver"
export FINERACT_HIKARI_MINIMUM_IDLE="3"
export FINERACT_DEFAULT_TENANTDB_HOSTNAME="localhost"
|
---|
If you require some help please contact us. These are the channels available to get in contact: Communications
Please include screens, logs (use a paste tool like Encrypted note on PrivateBin ), description of the issue with all the details that you can share. Please be careful and avoid to include sensitive data.
Remember that these installation instructions are for a quick way to get the Mifos X Platform up and running very quickly. You have to protect the sensitive data in motion/rest, secrets, connections, credentials, etc. based on your local requirements.