> For the complete documentation index, see [llms.txt](https://docs.hivel.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.hivel.ai/archive/generic/hivel-on-premises-deployment-guide-generic/2.-prerequisites-and-vm-server-requirements.md).

# 2. Prerequisites and VM Server Requirements

Before starting, ensure you have:

* Infrastructure account with appropriate permissions - AWS, Azure, GCP, or your on-prem virtualization/provisioning platform
* Two servers/VMs (VM1 and VM2) - see sizing below
* A PostgreSQL database instance - managed (e.g. RDS, Azure Database for PostgreSQL, Cloud SQL) or self-hosted - provisioned and running
* AWS CLI installed and configured on VM1 and VM2 - required to authenticate against Hivel's ECR, regardless of your own cloud provider
* Docker and Docker Compose installed
* Hivel License Files - license\_signed.json and hivel\_onprem\_public.pem
* Hivel AWS Access Credentials - Access Key ID and Secret Access Key for ECR access (provided by Hivel)
* Hivel S3 Download Access - S3 bucket path or pre-signed URL to download the docker-onprem-installer package

If you don't yet have your license files or AWS access credentials, contact Hivel support before starting - the deployment cannot complete without them.

### Verify Prerequisites Before Starting

Run these on both VM1 and VM2 once each tool is installed (see Infrastructure Setup below) to confirm you're on a supported version before proceeding, and that you have the access this guide assumes:

```
# Tooling versions
docker --version          # supported: Docker >= 26.0
docker-compose --version  # supported: Docker Compose >= 2.25.0
aws --version               # any current v2.x
psql --version               # client only - see Database Setup for server-side version

# Host access and disk space
whoami                       # confirms you have a shell on the VM
df -h                        # confirm free disk space against VM sizing below

# License files present (after Project Setup)
ls -l license/               # should list license_signed.json and hivel_onprem_public.pem
```

The minimum supported versions are Docker Engine 26.0 and Docker Compose 2.25.0. If either docker --version or docker-compose --version reports something older, upgrade before proceeding - earlier versions are not supported.

### Network Requirements

The table below consolidates every inbound/outbound network rule referenced across this guide, so you can configure firewalls once instead of discovering rules step by step.

<table data-header-hidden data-search="false"><thead><tr><th></th><th></th><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Direction</strong></td><td><strong>Host</strong></td><td><strong>Port / Destination</strong></td><td><strong>Protocol</strong></td><td><strong>Purpose</strong></td></tr><tr><td>Inbound</td><td>VM1</td><td>80, 3000, 8081–8089</td><td>TCP</td><td>UI, API Gateway, and backend services (see Quick Reference for the full per-port breakdown)</td></tr><tr><td>Inbound</td><td>VM2</td><td>8085</td><td>TCP</td><td>Git Util Service</td></tr><tr><td>Inbound (both directions)</td><td>VM1 &#x26; VM2</td><td>5432, restricted to each other's address/security group</td><td>TCP</td><td>PostgreSQL</td></tr><tr><td>Outbound</td><td>VM1 &#x26; VM2</td><td>730335373269.dkr.ecr.ap-south-1.amazonaws.com</td><td>HTTPS (443)</td><td>Pulling Hivel's Docker images from ECR</td></tr><tr><td>Outbound</td><td>VM1 (setup only)</td><td>Hivel's S3 bucket</td><td>HTTPS (443)</td><td>Downloading the docker-onprem-installer package</td></tr><tr><td>Outbound</td><td>VM1 &#x26; VM2</td><td>Standard OS package repositories, Docker Hub</td><td>HTTPS (443)</td><td>Installing Docker, Docker Compose, and AWS CLI</td></tr><tr><td>Outbound (optional)</td><td>VM1</td><td>Your Jira/GitHub/GitLab instance</td><td>HTTPS</td><td>Integration connectivity</td></tr><tr><td>Inbound (optional)</td><td>VM1</td><td>80, 443</td><td>TCP</td><td>Only if using the Caddy-based HTTPS option - see DNS and HTTPS Setup</td></tr></tbody></table>

Cloud-specific equivalents for the inbound/outbound rules above: AWS uses Security Groups, Azure uses Network Security Groups, GCP uses Firewall Rules, and on-prem/private data centers use your data center firewall or router ACLs.

Outbound traffic to Hivel's container registry (ECR) can route through a standard corporate proxy without any additional configuration on Hivel's side. If your organization requires all other outbound destinations in the table above (S3, package repositories, your Jira/GitHub/GitLab instance) to route through a proxy as well, contact your Hivel representative to confirm support before finalizing firewall rules.

### VM / Server Requirements

#### VM1 (Primary Services)

* Instance size: 4 vCPU / 16GB RAM or larger (e.g. AWS t3.xlarge, Azure D4s\_v5, GCP n2-standard-4, or equivalent on-prem spec)
* OS: Ubuntu 22.04 LTS or Amazon Linux 2 (or your organization's supported equivalent)
* Storage: 50GB+ SSD-backed volume
* Network: inbound access open on ports 80, 3000, 8081–8089

#### VM2 (Secondary Services)

* Instance size: 2 vCPU / 8GB RAM or larger (e.g. AWS t3.large, Azure D2s\_v5, GCP n2-standard-2, or equivalent on-prem spec)
* OS: Ubuntu 22.04 LTS or Amazon Linux 2 (or your organization's supported equivalent)
* Storage: 30GB+ SSD-backed volume
* Network: inbound access open on port 8085

**Note:** VM1 and VM2 services must run on separate servers. Do not deploy both on the same machine.

The sizing above is a single "default" profile. This is the minimum supported profile for any environment size - Hivel has not published separate small/medium/large sizing tiers at this time. If you expect high integration/commit volume, contact your Hivel representative before sizing your infrastructure.

**Next step:** Infrastructure Setup - provision the two servers and install the required tooling.

<br>

{% columns %}
{% column %} <a href="/archive/generic/hivel-on-premises-deployment-guide-generic/1.-overview.md" class="button primary" data-icon="backward">Overview</a>
{% endcolumn %}

{% column %}

{% endcolumn %}

{% column %} <a href="/archive/generic/hivel-on-premises-deployment-guide-generic/3.-infrastructure-setup.md" class="button primary" data-icon="forward">Infrastructure Setup</a>
{% endcolumn %}
{% endcolumns %}
