# Deploy HyperTest Server

In this guide, we will install [HyperTest](https://hypertest.co/) in a new ubuntu VM.

{% hint style="warning" %}
The VM should preferably be latest Ubuntu version - 24.04.
{% endhint %}

{% hint style="info" %}
If you are using AWS EC2, you can reduce cost by installing HyperTest on a spot instance and attaching an elastic IP to it.
{% endhint %}

## Tech Stack Overview

[Docker](https://www.docker.com/): Docker is an open platform for developing, shipping, and running applications

[HyperTest](https://www.hypertest.co/): A No-code API testing tool

## Recommended Resources

Recommended minimum resources required to run HyperTest on a VM are as follows:

| 4 vCPU | 16 GB RAM | 100 GB Disk |
| ------ | --------- | ----------- |

## Prerequisites

{% hint style="info" %}
You should have root user access in VM
{% endhint %}

Your system should have the following installed:

1. [Docker](https://www.docker.com/): (>= 20.10.6)

### 1. Installing Docker

Check if you have docker installed in your VM already by using the following command

```bash
docker -v
```

If you don’t have docker, install it using the following command

```bash
curl -fsSL https://get.docker.com -o get-docker.sh && sudo sh get-docker.sh
```

> If you have an older version of docker (< 18.09.7), remove it and reinstall the latest version using above command

Check if docker is installed successfully by using the following command

```bash
docker -v
```

## Getting Started

### 1. Deploy HyperTest Services

Switch to sudo user

```bash
sudo -i
```

download the starter archive docker-compose.yml with the below content

<pre class="language-bash"><code class="lang-bash"><strong>mkdir -p /opt/hypertest
</strong>cd /opt/hypertest
curl -O https://hypertest-documentation-assets.s3.ap-south-1.amazonaws.com/docker-compose/ht-init.tar.xz
tar -xf ht-init.tar.xz

## verify contents using ls -a 
</code></pre>

You should now have these files

* docker-compose.yml
* dynamic.yml
* .env
* .htpasswd
* otel-collector.yml

**The following are the details of the env variables in the .env file**\
**These ports should be opened on your VM**<br>

```properties
HOST_TRAEFIK_STATS_PORT_TRAEFIK=8080
HOST_BACKEND_PORT_TRAEFIK=8001
HOST_LOGGER_PORT_TRAEFIK=4319
HOST_CONSUL_HTTP_PORT_TRAEFIK=8500
HOST_DB_PORT=16544
HOST_JAEGER_PORT=16687
HYPERTEST_VERSION=0.2.23-4
```

* HOST\_BACKEND\_PORT\_TRAEFI&#x4B;**:** 8001 - This is the port on which HyperTest Dashboard will be accessible by the users
* HOST\_LOGGER\_PORT\_TRAEFI&#x4B;**:** 4319 - This port will be used internally for mirroring traffic. You have to allow incoming traffic to HyperTest on this port from your application
* HOST\_CONSUL\_HTTP\_PORT\_TRAEFI&#x4B;**: 8500** - This port will be used to expose consul
* **HYPERTEST\_VERSION: 0.2.23-4** -  Version of HyperTest (Get the latest from the HT team)

Bring up the services by the following command

```bash
docker compose up -d
```

Verify the containers are up and running by `docker ps`&#x20;

HT Dashboard will be accessible on`http://<hypertest-vm-ip/domain>:<`HOST\_BACKEND\_PORT\_TRAEFIK`>`


---

# 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-v2.hypertest.co/setup-guide/readme/deploy-hypertest-server.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.
