> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.adid.dev/llms.txt.
> For full documentation content, see https://docs.adid.dev/llms-full.txt.

# System Requirements

The platform is a polyglot stack with three runtime services (API, Portal, Blockchain RPC client) and two stateful services (Postgres, Redis). Smart-contract deployment is a one-time operation and requires Hardhat-compatible tooling.

#### 14.1.1 Minimum vs recommended

| Component   | Minimum (single-node dev)                              | Recommended (production)                     |
| ----------- | ------------------------------------------------------ | -------------------------------------------- |
| **CPU**     | 2 vCPU                                                 | 8 vCPU per API pod (HPA target 60%)          |
| **RAM**     | 8 GB                                                   | 16 GB per node; 4 GB per API pod             |
| **Disk**    | 20 GB SSD                                              | 200 GB SSD for Postgres data; 50 GB for logs |
| **Network** | 100 Mbps                                               | 1 Gbps with private subnet for DB/Redis      |
| **OS**      | macOS 13+, Ubuntu 22.04+, or any Linux with kernel 5.x | Ubuntu 22.04 LTS or RHEL 9                   |

#### 14.1.2 Software prerequisites

| Dependency         | Version                            | Used by                                          |
| ------------------ | ---------------------------------- | ------------------------------------------------ |
| **Docker**         | 24+                                | All services in dev / Compose deployments        |
| **Docker Compose** | v2+                                | `make dev`, `make docker-up`                     |
| **kubectl**        | 1.28+                              | K8s deployments                                  |
| **Helm**           | 3.14+                              | Optional — chart-based install                   |
| **Go**             | 1.22                               | Build API from source                            |
| **Node.js**        | ≥ 20                               | Portal, SDK, Blockchain (Hardhat)                |
| **npm**            | ≥ 10                               | Workspaces                                       |
| **PostgreSQL**     | 16-alpine (Compose) or 16+ managed | Primary data store                               |
| **Redis**          | 7-alpine                           | Sessions, OTP, ZK challenges, rate-limit buckets |
| **golangci-lint**  | latest                             | Lint Go code (CI)                                |
| **Solhint**        | latest                             | Lint Solidity (CI)                               |

#### 14.1.3 Outbound network requirements

The API server must be able to reach:

| Destination                                                   | Port                      | Purpose                 |
| ------------------------------------------------------------- | ------------------------- | ----------------------- |
| ADI RPC endpoint (`BLOCKCHAIN_RPC`)                           | 443 (HTTPS) or 8545 (dev) | All on-chain operations |
| Resend SMTP API (`api.resend.com`)                            | 443                       | OTP email delivery      |
| Google OAuth (`accounts.google.com`, `oauth2.googleapis.com`) | 443                       | Google sign-in          |
| GitHub OAuth (`github.com`, `api.github.com`)                 | 443                       | GitHub sign-in          |
| Object storage (S3 / R2 / GCS)                                | 443                       | Backup uploads          |

#### 14.1.4 Browser requirements (Portal)

* Evergreen Chromium-family (Chrome, Edge, Brave) ≥ 110.
* Firefox ≥ 110, Safari ≥ 16.
* WebCrypto API + `crypto.subtle` (required for Ed25519 verification in browser).
* WebAssembly enabled (required for browser-side ZK proof generation).

***