> For the complete documentation index, see [llms.txt](https://docs.raga.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.raga.ai/ragaai-catalyst/on-premise-deployment/raga-catalyst-deployment-guide.md).

# Evaluation Deployment Guide

Step-by-step guide for deploying Catalyst evaluation. Ensure smooth setup for AI testing.

1. VM Preparation
   * Launch a Virtual Machine (VM) using your organization's standard protocol
   * Ensure the VM meets all system requirements. [System Requirements](#system-requirements)
   * Ensure VM meets the Software Requirements & Network Validation. [Software Requirements](#software-requirements)
   * Install nginx on the VM - and ensure that it is accessible from the developer machine. HTTP or HTTPS(if required) is already setup.
2. Installation Execution
   * SSH into the instance
   * Run the provided bash script on your prepared VM
3. [Verify Installation](#access-raga-catalyst)

## System Requirements

| **Architecture** | **ARM** | **AMD** |
| ---------------- | ------- | ------- |
| **CPU**          | 8 vCPU  | 16 vCPU |
| **Memory**       | 32 GB   | 64 GB   |
| **Disk Space**   | 128 GB  | 128 GB  |

* Disk where /var is mounted should have 80GB as available disk space.
* Linux user must have sudo access

**Inbound Ports**

* **22** (SSH)
  * Required to access the terminal to run the script.
* **80** (HTTP)
  * Required to access the APIs and UI.

**Outbound Ports**

* **443** (HTTPS)
  * Required to pull images from docker hub.
  * Required to connect to hosted LLMs (e.g. OpenAPI, Anthropic)
* **587** \[Optional] (SMTP)
  * Only needed if email functionality is required.
* **80** (HTTP)
  * Required only during initial setup. This is required to install few packages like (unizp, jq)
  * We should close port 80 after installing Raga Catalyst.

## Software Requirements

* Operating System: **Ubuntu Noble 24.04 (LTS)** or **RHEL 9**
* Docker 27.2.0+ ([Install Docker](https://docs.docker.com/engine/install/))
* Minikube V1.33.0+ ([Install Minikube](/ragaai-catalyst/on-premise-deployment/raga-catalyst-deployment-guide.md))
* Nginx ([Install Nginx](https://docs.nginx.com/nginx/admin-guide/installing-nginx/installing-nginx-open-source/#choosing-between-a-stable-or-a-mainline-version))

<details>

<summary>Validating Installation &#x26; Network Accessibility</summary>

**Verify Docker Installation & Networking**

* Run a Docker container:

  ```sh
  docker run --rm nginx sh -c "curl -o /dev/null -s -w '%{http_code}\n' https://www.google.com"
  ```
* If it prints `200`, the installation is successful, and the networking is compatible.

**Verify Minikube Installation**

* Check the installation by executing:

  ```sh
  minikube version
  ```

**Verify Nginx Installation**

* Check the Nginx status by executing:

  ```sh
  sudo systctl status nginx
  ```

  It should be running.
* Execute the command:

  ```sh
  curl -o /dev/null -s -w '%{http_code}\n' localhost
  ```

  If should print `200`
* Access the default Nginx page from a browser outside the VM using its IP http\://:80/

</details>

## Install Raga Catalyst on VM

#### Install Raga Catalyst:

* SSH into the instance and run the installation command.
* Run the script received from inside the VM from user home directory.

#### Access Raga Catalyst

* Wait 30 minutes after command execution
* Portal: `http://<vm_ip>`
* API: `http://<vm_ip>/api`
* If you face any issues accessing Raga Catalyst, run the command `cat /var/log/ragastartup.log` and share the output with the Raga team for quick assistance
