Mifos X Platform 25.03.22 - Installation Instructions on Windows 11 Home x86_64 - Docker, Postgresql and Oauth
Objective
Provide clear instructions in order to Install the Mifos X Platform 25.03.22 Release with Docker Compose on a Windows 11 Home x86_64 Operating System, these instructions should ideally be executed by users with basic technical skills.
Target Audience
Username | User description |
General Public | Users should have basic knowledge about Software Installation on Windows. |
|
|
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
| |
Go to Docker Download Web Page and select the version for Windows. | |
Wait for the download file. | |
Double click on the file that was downloaded | |
The Installation Wizard will help us to have a graphical UI for the Docker Installation process. Click on the “Ok” button. | |
The wizard will unpack the files | |
Once the process is completed click on the “Close and restart” button and the computer will restart. | |
Once the computer has restarted, the docker subscription screen will open, click the "Accept" button | |
Select the recommended settings and click the "Finish" button | |
click "Continue without signing in"
| |
Click the “Skip survey” button. | |
The Docker Engine will start | |
In the launch bar, look for the “ Docker Desktop” and start it. | |
| |
When you enter the download link, the file will automatically start downloading | |
We locate the downloaded zip file | |
We unzip the zip file | |
We enter the path where the decompressed file is saved | |
We locate the unzipped file | |
| |
Login to powershell as administrator | |
On the powershell screen we go to the path where we have the unzipped docker compose file and to the postgresql folder | |
once in the path and in the folder, we raise the docker compose containers with the command, docker compose up -d | |
Validate that the three containers are shown on the docker desktop
Web-App Fineract Postgresql | |
We review the Logs to validate that the containers were started correctly. Please be patient, it could take some minutes to complete. | |
Validate that Mifos X Release 25.03 is up and running entering the following url http://localhost in a Web Browser | |
Sign in with the default credentials:
User: mifos
Password: password | |
We stop the container from the docker desktop interface, click on the "stop" button | |
The container is stopped | |
| |
Run the command:
docker run -p 9090:9090 -e KC_HTTP_PORT=9090 -e KC_BOOTSTRAP_ADMIN_USERNAME=admin -e KC_BOOTSTRAP_ADMIN_PASSWORD=admin
Access the URL from a web browser:
| docker run -p {$host_port}:{$container_port} -e KC_HTTP_PORT={$container_port} -e KC_BOOTSTRAP_ADMIN_USERNAME={$admin_user} -e KC_BOOTSTRAP_ADMIN_PASSWORD={$admin_password} http://quay.io/keycloak/keycloak:{$version} start-dev |
The username and password were defined in the command executed in the previous step. | |
| |
It is necessary to create a tenant:
| |
| |
| |
To create a user:
| |
Enter the requested values:
Username: mifos Email: {$valid_email} First name: {$first_name} Last name: {$last_name}
Press the "Create" button at the bottom of the window.
Note: Replace the values within curly braces with the user's data. | |
Once the user is created, it should appear as shown in the example in the image. | |
From the user created in the previous step, go to the "Credentials" tab at the top of the window. | |
Assign a password for the user mifos. | |
The system will prompt for confirmation. Click the "Save password" button. | |
Once the password is created, it will be visible in the "Credentials" tab. | |
| |
To create a client:
| |
Enter the requested values:
Client ID: webapp Name: webapp
Press the "Next" button at the bottom of the window.
Note: Replace the values within curly braces with the client’s data. | |
In the "Compatibility config" section, only the following options should be active:
| |
Enter the requested values:
Root URL: {$Keycloak_url}/webapp Web origins: {$mifos_url}
Press the "Save" button at the bottom of the window. | |
Once the configuration is complete, the created client should appear similar to what is shown in the image. | |
| |
Press the "Save" button at the center of the window. | |
The system will display a list of mapper types. From now on, only the type of mapper will be mentioned, assuming it should be selected from this list. Select the "User Property" option. | |
Enter the requested values:
Name: usernameInSub Property: username Token Claim Name: sub Claim JSON Type: String
Press the "Save" button. | |
| |
Enter the requested values:
Name: Client Host User Session Note: clientHost Token Claim Name: clientHost Claim JSON Type: String
Press the "Save" button. | |
Enter the requested values:
Name: Client IP Address User Session Note: clientAddress Token Claim Name: clientAddress Claim JSON Type: String
Press the "Save" button. |
|
Enter the requested values:
Name: Client ID Address User Session Note: client_id Token Claim Name: client_id Claim JSON Type: String
Press the "Save" button. | |
Once the configurations are complete, the "web-app-dedicated" section should appear as shown in the image. | |
| |
To create a client:
| |
Enter the requested values:
Name: ALL_FUNCTIONS Description: ALL_FUNCTIONS Type: Default Protocol: OpenID connect
Press the "Save" button. | |
Once the scope is created, select it. | |
Select the "User Realm Role" option. | |
Enter the requested values:
Name: realm roles Token Claim Name: realm_access.roles Claim JSON Type: String
Press the "Save" button. | |
| |
Set the following env vars for Apache Fineract in the docker-compose.yml file, use a text editor like VScode or Notepad.
|
|
Validate that containers are lifted correctly:
docker compose pull && docker compose down && docker compose up -d && docker compose logs -f | |
Validate the configurations, by running the following from a terminal:
curl --location --request POST "https://{$KEYCLOAK_URL}/realms/{$TENANT}/protocol/openid-connect/token" ^ --header "Content-Type: application/x-www-form-urlencoded" ^ --data-urlencode "username=mifos" ^ --data-urlencode "password=password" ^ --data-urlencode "client_id=webapp" ^ --data-urlencode "grant_type=password" | Enjoy and give us feedback. If you require some help please contact us. These are the channels available to get in contact: Please include screens, logs (use a paste tool like |
