**Language / Язык:** [English](ports.md) | [Русский](ru/ports.md)

# vCenter ports in this simulator

Reference: [vSphere Networking Ports](https://ports.esp.vmware.com/) (vCenter Server).

The `api-gateway` (nginx) publishes the **primary vCenter HTTPS listener**
plus an HTTP lab face. Every published port proxies to the same FastAPI
process, which already path-routes REST (`/api`, `/rest`) and SOAP (`/sdk`)
internally — there is no separate port per protocol. The gateway also sets
`X-VMware-Service` / `X-Forwarded-Port` so clients and future routers can tell
which port was used.

## Published by Compose (`api-gateway`)

| Service | Container port | Host port (dev compose) |
|---|---:|---:|
| HTTP lab face | 80 | 80 |
| vCenter HTTPS (primary UI/API entry) | 443 | 443 |

Host ports match real vCenter defaults so remote clients can use
`https://<host>/` and `http://<host>/` without a non-standard port.
Override on release compose with `HTTP_PORT` / `HTTPS_PORT` if needed.

Also published by Compose (not via the gateway):

| Service | Host port (dev compose) |
|---|---:|
| PostgreSQL | `5434` (localhost only) |

Internal simulator process (not published to the host): `8080`.

## Path layout on HTTPS

| Surface | Path prefix | Status |
|---|---|---|
| vSphere REST | `/api/…`, `/rest/…` | implemented (core inventory + session) |
| SOAP / VIM SDK | `/sdk` | implemented (RetrieveServiceContent / Login / RetrieveProperties subset) |
| HttpNfcLease / NFC | `/nfc/…` | lab transfer handshake on the same HTTPS listener |
| Lab console | `/` | yes |
| Health | `/health/live`, `/health/ready` | yes |

## Documented but not published yet

| Service | Ports |
|---|---|
| VAMI / appliance management | 5480 |
| ESXi host management (if simulated later) | 443 (separate host) |
| Syslog / etc. | various |
