---
title: Agility Installation Guide
slug: agility-en/agility-installation-guide
description: Learn how to set up Agility, an application, with this comprehensive document. Find prerequisites such as FrontManager installation, tenant and application configurations, and access data for IT infrastructure. Follow step-by-step installation procedures 
docTags: 
createdAt: 2023-07-14T11:08:55.631Z
---

# Prerequisites for installation

- [ ] FrontManager installation
- [ ] Configuration of tenants and applications
- [ ] Central IT infrastructure access data (git credentials, nexus credentials)
- [ ] kubectl configured for the environment where it will be deployed (this includes the project's environment variables, with their appropriate access data).

## Tools

- Database (PostgreSQL 13+ / SQLServer 2019+ / Oracle 12c+)
- KeyCloak (must already be installed as FrontManager depends on it)
- MiniIO (must already be installed as FrontManager depends on it)
- Kafka (must already be installed as FrontManager depends on it)

# Installation steps

Steps to install Agility:

- Clone the hyper-kanban-api repository

:::BlockQuote
git clone http\://gitlab.centralit.io/centralit/hyper-platform/hyper-kanban-api.git
:::

- Enter the folder where the project was cloned and check out the devel branch

:::BlockQuote
git checkout devel
:::

- Run Step 1. Migrations
- Run Step 2. Deploy

## Step 1. Migrations

The `migrations.sh` script processes migrations for multiple databases according to the settings present in a migrations file in json format which by default is migrations-config.json in the same folder as the script.

### Migrations-config.json file

The file must follow the structure below:

![](https://api.archbee.com/api/optimize/pu5VMc-2TW3GQX4ly5Xp7/eciJzu7zg6TaeznNNQ7VI_image.png)

Where the attributes of each tenant that follows:

::Image[]{src="https://api.archbee.com/api/optimize/pu5VMc-2TW3GQX4ly5Xp7/gIsKKe2OGaiqOhwZr1wox_image.png" size="80" width="639" height="347" position="center" showCaption="false"}

### Example

Example file with two tenants (`citsmart and tenant1`) for the `hyper-kanban-api` application development environment (this application).

![](https://api.archbee.com/api/optimize/pu5VMc-2TW3GQX4ly5Xp7/TGQxYWPoJzXcvmg0zUOe4_image.png)

### Running the migrations.sh script

**How to use**

:::BlockQuote
./migration.sh \<TenantName> ...
:::

**Example**

:::BlockQuote
./migration.sh citsmart tenant1
:::

## Step 2. Deploy

### Via gitlab CI

For some environments, there is already automation in gitlab, where simply merging to the branch already triggers the deployment of the product (apps.centralit, labcentral). These are the cases of branches with prefix `deploy/`

Gitlab CI example on the deploy/apps.centralit.com.br branch&#x20;

![](https://api.archbee.com/api/optimize/pu5VMc-2TW3GQX4ly5Xp7/KewmGvQ08jMnFzdAFCvDd_image.png)

### Manual via kubectl script

To do it manually, the template files for the environment in question must be created:

configmap.template.yml

deployment.template.yml

ticket.template.yml

service.template.yml

In this case, the only file to be updated would be the configmap.template.yml (environment variables), the rest of them follow the same pattern and content. The files must be created in the k8s folder, in a new folder named after the environment. After that, the `k8s-apply.sh` script must be executed passing which environment will be updated with deploy. Ex: `k8s-apply.sh dev-eveo`

![](https://api.archbee.com/api/optimize/pu5VMc-2TW3GQX4ly5Xp7/HJQPqtMOob5sJLhJCuL2u_image.png)

### Updating directly in Rancher

In cases where the Kubernetes environment already exists and it is only necessary to update the package, just change the package path to the one available in the registry.

![](https://api.archbee.com/api/optimize/pu5VMc-2TW3GQX4ly5Xp7/KN6Q0XoYa3LewS_DZEVBW_image.png)

