# 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`>`
