Installation Documentation

Note

IMPORTANT: Whenever we make updates to our installation documentation, these must have been previously verified step by step in a practical installation test process.

Introduction

This documentation provides a step-by-step guide for the complete installation of the Unimate Portal system RPA. It includes configuration of the environment, installation of the required software and system setup. In this example, the portal is installed 100% in a Docker ecosystem and uses an Nginx reverse proxy to manage the inbound ports of the application.

Prerequisites

  • Imagen del sistema: Ubuntu Server 22.04 LTS - x64 Gen2

  • Authentication: SSH public key

  • SSH key format: RSA

  • Key pair name: test-vm_key

  • Public incoming ports:

    • 22 (SSH)

    • 443 (HTTPS)

    • 80 (HTTP)

Required software

  • Docker Engine

  • Access: user username + SSH key

Environment Configuration

Updating the system:

$ sudo apt update && sudo apt upgrade -y

Install dependencies and add official Docker GPG key:

$ sudo apt-get update
$ sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
$ sudo install -m 0755 -d /etc/apt/keyrings
$ sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
$ sudo chmod a+r /etc/apt/keyrings/docker.asc

Add the Docker repository to the Apt resources of the system:

$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt-get update

Install the Docker Engine:

$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Verify Docker installation:

$ sudo systemctl status docker

(Optional) Allow the current user to run Docker without sudo:

$ sudo usermod -aG docker $USER

Note

After adding the user to the docker group, log out and log back in, or reboot the machine for the changes to take effect.

Docker Hub o GitHub Packages Registry

Docker Hub or ghcr.io will be where the Docker images will be hosted. To deploy the system, a pull of the images will be performed.

Export environment variable CR_PAT (Personal Access Token in GitHub):

$ export CR_PAT=github_pat_XXXXXXXXXXXXXXX
$ echo $CR_PAT | docker login ghcr.io -u mmollcode --password-stdin

Login and Docker Hub:

$ echo "dckr_pat_GXXXXXXXXXXXX" | docker login -u unimaterpadockerhub --password-stdin

Verificar access to Docker Hub:

$ sudo docker pull hello-world

Restart the Docker service:

$ sudo systemctl restart docker

Download the images of the application:

$ docker pull unimaterpadockerhub/cloud-front:latest
$ docker pull unimaterpadockerhub/cloud-api:latest

Decompression of the installation package

The setup_files.tar.gz file contains the directory and file structure required for the installation.

Unzip the package:

$ tar -xzvf setup_files.tar.gz

Nginx Configuration and Environment Variables

  1. Edit cloud-front/nginx/nginx.conf and update the server_name values.

  2. Modify the .env file with the correct app_url values.

  3. Adjust the Firebase Admin SDK JSON file if necessary.

GitHub Runners

To run automatic deployments with GitHub Actions, self-hosted runners must be configured.

Install and configure a GitHub Runner:

  1. Ir a Settings > Actions > Runners en el repositorio de GitHub.

  2. Execute the commands provided by GitHub in the VM.

  3. Asignar labels adecuados``(develop, cloud-front`` etc.).

Execute the installation commands:

$ sudo ./svc.sh install
$ sudo ./svc.sh start

Stop and uninstall the Runner:

$ sudo ./svc.sh stop
$ sudo ./svc.sh uninstall

Deploy con Docker Compose

Ejecutar docker-compose:

$ docker compose up -d

Manual configuration review:

Before proceeding with the deployment, review the docker-compose.yml file and make sure that the images correspond to the correct environment:

services:
  nginx:
    image: unimaterpadockerhub/cloud-front:develop

Conclusion

The installation of the Unimate Portal RPA requires the correct configuration of the environment, credentials and environment variables. It is always recommended to verify each step before proceeding with a production deployment.