> For the complete documentation index, see [llms.txt](https://docs.openiam.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.openiam.com/installation/what-you-need.md).

# What you need

Hosts, operating system, memory, disk, network and the decisions to have ready before you begin.

Provision against this page before you begin. The installer checks the memory, disk and swap requirements at the start of the run and reports clearly if a host does not meet them.

## System requirements

Full detail — supported operating systems, CPU, memory, disk, database platforms and the component versions OpenIAM ships — is in [*System requirements*](/installation/system-requirements.md). The essentials for provisioning:

|                      | RPM, single node                        | RPM, three nodes         |
| -------------------- | --------------------------------------- | ------------------------ |
| **Hosts**            | 1                                       | 3, identically specified |
| **CPU**              | 8 vCPU                                  | 8 vCPU per host          |
| **Memory**           | 48 GB non-production, 62 GB production  | Same, per host           |
| **Disk on `/`**      | 80 GB non-production, 200 GB production | Same, per host           |
| **Operating system** | Enterprise Linux 9 or 10                | Enterprise Linux 9 or 10 |

The installation confirms memory, disk and swap against the environment you select before it begins.

**OpenIAM installs into `/usr/local/openiam`, on the root filesystem, and the free-space check is against `/`.** If your host keeps its capacity on a separate partition — a dedicated `/opt`, a mounted data volume or an LVM volume — you can install there instead. See [*Install on a separate partition*](/installation/rpm/rpm-single-node/separate-partition.md), and decide before you install.

**Swap must be disabled.** OpenIAM's memory settings are sized for a host that does not swap, and a host that swaps under load performs far worse than one that does not.

{% code overflow="wrap" %}

```bash
swapon --show      # confirm no output
swapoff -a         # disable now
```

{% endcode %}

Remove or comment the swap entry in `/etc/fstab` so it stays disabled across restarts.

**Confirm the operating system version**, and note which — you need it when obtaining the software:

{% code overflow="wrap" %}

```bash
grep PLATFORM_ID /etc/os-release
```

{% endcode %}

Expected: `platform:el9` or `platform:el10`.

## Database

Choose one of MariaDB, MySQL, PostgreSQL, SQL Server or Oracle. **The choice is fixed for the life of the deployment**, so confirm which your organisation will support long term. Supported versions are in [*System requirements*](/installation/system-requirements.md).

For a single-node deployment the installer can install MariaDB on the platform host for you. Otherwise supply your own server — see [*Use a remote database*](/installation/rpm/rpm-single-node/use-a-remote-database.md).

## Accounts and access

* **`root`, or an account with full `sudo`.** The installation creates users, writes to `/etc`, installs packages and sets kernel parameters.
* **An `openiam` service account** is created for you if one does not already exist.
* **A database account able to create databases and users**, if you are using a remote database. See [*Use a remote database*](/installation/rpm/rpm-single-node/use-a-remote-database.md).

## Network

* **Outbound HTTPS to `download.openiam.com`**, and registration with your vendor's package repositories. If the host has no outbound access, use the air-gapped procedure in [*Obtain the software*](/installation/obtain-the-software.md) instead.
* **The ports for the shape you are building** — [*single node*](/installation/rpm/rpm-single-node/ports.md) or [*three nodes*](/installation/rpm/rpm-ha/ports.md). A single-node deployment exposes two ports to users — 80 and 443; the three-node shape adds ports between the three hosts. It needs those two reachable from outside the host; the three-node deployment adds inter-node ports.
* **A resolvable hostname per host.** For the three-node build, each host must resolve and reach the other two by the names you configure.

## Kernel parameters and limits

The installation sets these for you. They are listed so you know what changes on the host:

| Setting                              | Value    |
| ------------------------------------ | -------- |
| `vm.max_map_count`                   | `262144` |
| `net.ipv6.conf.all.disable_ipv6`     | `1`      |
| `net.ipv6.conf.default.disable_ipv6` | `1`      |
| `nofile` soft and hard limits        | `65536`  |

IPv6 is disabled on the host. If another application on the same host requires IPv6, plan for that before you install.

The file-descriptor limits take effect at the next restart, which the installation performs — see [*Install*](/installation/rpm/rpm-single-node/install.md).

## Hardened hosts

OpenIAM installs cleanly on hardened builds and configures itself accordingly:

* **fapolicyd** — execution rules for the OpenIAM binaries are installed automatically when the service is active.
* **FIPS and STIG crypto policies** — additional rules are applied automatically when detected.

Neither requires anything from you. On hosts hardened by other means, allow execution from `/usr/local/openiam` and permit the ports listed in the reference.

## Decisions to have ready

The installation prompts for these. Some cannot be changed afterwards without rebuilding, so decide in advance.

<table><thead><tr><th width="244.79998779296875">Decision</th><th>Notes</th></tr></thead><tbody><tr><td><strong>Environment</strong></td><td>Non-production or production — sets the requirements checked above</td></tr><tr><td><strong>Internet access</strong></td><td>Whether this host can reach <code>download.openiam.com</code></td></tr><tr><td><strong>Database location</strong></td><td>A local MariaDB installed for you, or your own remote database server</td></tr><tr><td><strong>Database engine</strong></td><td>MariaDB or MySQL, PostgreSQL, Microsoft SQL Server, or Oracle Database. <strong>Choose carefully — this is fixed after installation</strong></td></tr><tr><td><strong>Schema names</strong></td><td>Eight schemas. Defaults are recommended; see <a href="/installation/rpm/rpm-single-node/use-a-remote-database.md"><em>Use a remote database</em></a></td></tr><tr><td><strong>Credentials for the platform's own components</strong></td><td>A username and password for each of the eight schemas, plus passwords for the message broker, the cache and the search tier. The installation prompts for all of them and offers defaults; have your own values ready</td></tr><tr><td><strong>Whether the cache uses TLS</strong></td><td>Asked during the installation</td></tr><tr><td><strong>Whether the installation creates the schemas</strong></td><td>If yes, have a database super-user name and password to hand. It is used once and not stored</td></tr><tr><td><strong>Whether the database is a managed service</strong></td><td>RDS, Azure Database and similar need one parameter set on the instance</td></tr><tr><td><strong>Monitoring</strong></td><td>Whether to install the bundled Prometheus and Grafana stack. It requires OpenSearch as the search tier</td></tr></tbody></table>

## Building on a cloud provider

The requirements on this page are the same on AWS and Azure — an instance is not smaller because it is virtual. [*RPM on AWS and Azure*](/installation/rpm/cloud.md) covers instance types, storage, networking and the managed database.

## Related

* [*Obtain the software*](/installation/obtain-the-software.md)
* [*Ports — single node*](/installation/rpm/rpm-single-node/ports.md) and [*Ports — three nodes*](/installation/rpm/rpm-ha/ports.md)
* [Solution Architecture and Design Guide](/solution-architecture/solution-architecture.md) — topology selection and sizing

*Applies to OpenIAM 2026.8.1.*


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.openiam.com/installation/what-you-need.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
