# Evaluation Deployment Guide

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


---

# Agent Instructions: 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:

```
GET https://docs.raga.ai/ragaai-catalyst/on-premise-deployment/raga-catalyst-deployment-guide.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
