> For the complete documentation index, see [llms.txt](https://docs.digit.org/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.digit.org/public-finance/v2.3/platform/installation/ifix-service-setup.md).

# iFIX Service Setup

## Introduction

iFIX/mGramSeva is a microservices-based distributed cloud-native application. The microservices streamline processes to meet outcomes at scale and speed. Each of the microservices is dockerized and deployed on Kubernetes infrastructure. &#x20;

## Pre-reads <a href="#pre-read" id="pre-read"></a>

It is essential to understand some of the key concepts, benefits and best practices of Kubernetes platform before we understand the deployment of the iFix/mGramSeva. &#x20;

* Know the basics of Kubernetes: <https://www.youtube.com/watch?v=PH-2FfFD2PU&t=3s>​
* Know the [basics of kubectl](https://www.tutorialspoint.com/kubernetes/kubernetes_kubectl_commands.htm) commands
* Know Kubernetes manifests: <https://www.youtube.com/watch?v=ohSUtEfDefc>​
* Know how to manage env values, secrets of any service deployed in Kubernetes <https://www.youtube.com/watch?v=OW244LxB4oI>​
* Know how to port forward to a pod running inside k8s cluster and work locally <https://www.youtube.com/watch?v=TT3nd5n5Yus>​
* Know sops to secure your keys/creds: <https://www.youtube.com/watch?v=DWzJ87KbwxA>​

## 1. Choose Installation Type <a href="#v-1-choose-the-cloud-1" id="v-1-choose-the-cloud-1"></a>

Choose the target infra type and follow the instructions to set up a Kubernetes cluster before moving on to the deployment.

{% content-ref url="/pages/-MjSaFj5cc\_r1qRBG6fx" %}
[Quickstart/Local Setup](/public-finance/v2.3/platform/installation/infra-setup/quickstart.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MjSZk6W1k0R8oM\_C3-J" %}
[On AWS](/public-finance/v2.3/platform/installation/infra-setup/on-aws.md)
{% endcontent-ref %}

{% content-ref url="/pages/-MiKcR1Xw86ScVsYTEcL" %}
[On Azure](/public-finance/v2.3/platform/installation/infra-setup/on-azure.md)
{% endcontent-ref %}

## 2. Deployment <a href="#v-1-choose-the-cloud" id="v-1-choose-the-cloud"></a>

Before we begin the deployment, it is important to understand the deployment architecture that starts from the source code to the production-ready stage. Deploying and managing Kubernetes have emerged as a streamlined way to deploy containers in the cloud infrastructure. When running Kubernetes at scale, managing, operating, and scaling its infrastructure to maximize cluster utilization can be challenging. There are too many parameters the development team needs to manage and configure. This includes selecting the best instance type and size, determining when to scale up or down, and making sure all of the containers are scheduled and running on the best instances — and that is even before starting to think about cost resource optimization.

![](https://lh4.googleusercontent.com/JkymqACmPBvb3Y77UrqghaQifq1YYC_IfujLtK9eaXcIcMwvkBBx0thuGO7UD2BssAflbyyE2u9teNkqKLywDet09cl0fVO6GfgqFnRjUIRSLahvj5v7mT97sl8MKuYcFj2qfntM8Zs=s0)

The simplest way to get started with the **deployment process** is to manage deployment **configuration as code**. Each service deployment configuration is defined as Helm charts and deployed into the Kubernetes cluster. We can collocate the deployment-as-code as source code, leveraging all the benefits of source control including change tracking and branching, and then package it. So below is the source code repo that contains all the deployment-as-code for iFIX.

#### 1. mGramSeva Installation

{% content-ref url="/pages/-MjC8Dm5mC8qB09oRkzj" %}
[Deploy Services](/public-finance/v2.3/platform/installation/installation.md)
{% endcontent-ref %}

#### 2. iFIX-adapter Installation

{% content-ref url="/pages/-MjTF4XYqAXVMvfnEG5\_" %}
[Installation](/public-finance/v2.3/exemplar/ifix-adapter/installation.md)
{% endcontent-ref %}

#### 3. iFIX Ref Dashboard Installation

{% content-ref url="/pages/-MjTHZrMiyMraqGgVOC0" %}
[Installation](/public-finance/v2.3/exemplar/ifix-dashboard/installation.md)
{% endcontent-ref %}

## 3. Destroy the Setup <a href="#id-5-destroy-the-cluster" id="id-5-destroy-the-cluster"></a>

Clean up the cluster Setup using the command below, if required. This deletes the entire cluster and other cloud resources that were provisioned for the mGramSeva Infra Setup.

```
cd iFix-DevOps/infra-as-code/terraform/my-iFix-eksterraformdestroy​
```

## Conclusion <a href="#conclusion" id="conclusion"></a>

All done, the infra on local, cloud, and deployment of iFIX into the Kubernetes cluster is completed successfully.

> [![Creative Commons License](https://i.creativecommons.org/l/by/4.0/80x15.png)*​*](http://creativecommons.org/licenses/by/4.0/)*All content on this page by* [*eGov Foundation*](https://egov.org.in/) *is licensed under a* [*Creative Commons Attribution 4.0 International License*](http://creativecommons.org/licenses/by/4.0/)*.*


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.digit.org/public-finance/v2.3/platform/installation/ifix-service-setup.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
