> For the complete documentation index, see [llms.txt](https://docs.collibra.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.collibra.com/platform-self-hosted/collibra-platform-self-hosted-installation-and-upgrade/collibra-platform-self-hosted-installation/prepare-the-servers-for-installation.md).

# Prepare the servers for installation

## General preparation

* We recommend that you have 4 dedicated nodes: one for the Data Governance Center service and Search service, one for Collibra Console, one for the Repository service, and one for Jobserver if applicable. Make sure that you have a fast network between the nodes.
* You have downloaded the Collibra Platform Self-Hosted [installer](https://productresources.collibra.com/downloads/) on all nodes.

{% hint style="info" %}
Java is not a required prerequisite for the Collibra installation, as the installer includes its own bundled Java Runtime Environment (JRE).
{% endhint %}

## PostgreSQL on Linux

If you are installing Collibra Platform Self-Hosted on Linux, you must install the latest stable version of PostgreSQL on any server that runs one of the following services:

* Repository
* Jobserver
* Collibra Console

{% hint style="info" %}

* Ensure you install the correct version of PostgreSQL based on your CPSH version:
  * Releases prior to 2026.03 require PostgreSQL 14.xx.
  * Release 2026.03 (and later) requires PostgreSQL 17.
* You can find the latest stable versions of PostgreSQL and its documentation on the [PostgreSQL website](https://www.postgresql.org/docs/14/index.html).
  {% endhint %}

## Installation Methods

{% tabs %}
{% tab title="With Internet connection" %}

### Install PostgreSQL with Internet connection

{% stepper %}
{% step %}
Install PostgreSQL with the following commands.

{% hint style="warning" %}
Run the commands as root.
{% endhint %}

```bash
#Clean the YUM cache and update existing packages for your current Linux repository. Note that this makes system changes. 
yum clean all && yum update -y
#Prepare the PostgreSQL repository and packages:
yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm
#Update the packages in the repository:
yum -y update
#Install the PostgreSQL 17 packages:
yum -y install postgresql17 postgresql17-server postgresql17-contrib
```

{% endstep %}

{% step %}
Update the file **/usr/lib/tmpfiles.d/postgresql-17.conf** to set the correct permissions for some PostgreSQL folders. Open the file for editing, for example with vim or nano and update the line `d /run/postgresql 0755 postgres postgres -` to:

```bash
d /run/postgresql 2777 postgres postgres - -
```

{% hint style="warning" %}
Do not use the `chmod` command on any directories or files, edit this configuration file instead.
{% endhint %}
{% endstep %}

{% step %}
Reboot the server.
{% endstep %}
{% endstepper %}

{% hint style="success" %}
The default 17 path on RHEL/Rocky/CentOS is **/usr/pgsql-17**.
{% endhint %}
{% endtab %}

{% tab title="Without Internet connection" %}

#### Download the necessary PostgreSQL packages

On a server with Internet access:

{% stepper %}
{% step %}
Add the PostgreSQL repository:

```
sudo yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E %{rhel})-x86_64/pgdg-redhat-repo-latest.noarch.rpm
```

{% endstep %}

{% step %}
Update the package list:

```
sudo yum -y update
```

{% endstep %}

{% step %}
Install the yum-utils:

```
sudo yum install -y yum-utils
```

{% endstep %}

{% step %}
Get the web links for the necessary PostgreSQL packages and their dependencies:

```
yumdownloader --urls -y postgresql17 postgresql17-contrib postgresql17-server
```

{% endstep %}

{% step %}
Download packages and their dependencies:

```
yumdownloader --resolve -y postgresql17 postgresql17-contrib postgresql17-server
```

{% hint style="warning" %}
The list and names of the packages depend on your distro version. The following packages must always be included:

* lz4-1.9.3-5.el9.x86\_64.rpm
* postgresql17-14.\<minor version>PGDG.rhel9.x86\_64.rpm
* postgresql17-contrib-14.\<minor version>PGDG.rhel9.x86\_64.rpm
* postgresql17-libs-14.\<minor version>PGDG.rhel9.x86\_64.rpm
* postgresql17-server-14.\<minor version>PGDG.rhel9.x86\_64.rpm
  {% endhint %}
  {% endstep %}

{% step %}
Copy the downloaded packages to the server on which you want to install the moss stable version of PostgreSQL 17.
{% endstep %}
{% endstepper %}

#### Install PostgreSQL

{% stepper %}
{% step %}
From the directory that contains the packages, run the following command to install the PostgreSQL packages:

```
sudo yum localinstall -y *.rpm

```

{% endstep %}

{% step %}
Update the file **/usr/lib/tmpfiles.d/postgresql-17.conf** to set the correct permissions for some PostgreSQL folders. Open the file for editing, for example with vim or nano and update the line `d /run/postgresql 0755 postgres postgres -` to:

```
d /run/postgresql 2777 postgres postgres - -
```

{% hint style="warning" %}
Do not use the `chmod` command on any directories or files, edit this configuration file instead.
{% endhint %}
{% endstep %}

{% step %}
Reboot the server.
{% endstep %}
{% endstepper %}
{% endtab %}
{% endtabs %}

### Operating system configuration for Search service

The node that will run the Search service, must pass the following bootstrap checks:

* [File descriptor](https://www.elastic.co/guide/en/elasticsearch/reference/6.3/_file_descriptor_check.html)
* [Maximum number of threads check](https://www.elastic.co/guide/en/elasticsearch/reference/6.3/max-number-threads-check.html)
* [Maximum file size](https://www.elastic.co/guide/en/elasticsearch/reference/6.3/_max_file_size_check.html)
* [Maximum size virtual memory check](https://www.elastic.co/guide/en/elasticsearch/reference/6.3/max-size-virtual-memory-check.html)
* [Maximum map count check](https://www.elastic.co/guide/en/elasticsearch/reference/6.3/_maximum_map_count_check.html)

<table><thead><tr><th>Type</th><th>Check description</th><th>Minimum value</th><th>Applies for installation type</th><th>Setting name</th></tr></thead><tbody><tr><td rowspan="3">User limit</td><td>Maximum number of open file descriptors</td><td>65536</td><td rowspan="3"><ul><li>Without root permissions</li><li>With root permissions, using System V init daemon</li></ul></td><td>nofile</td></tr><tr><td>Maximum number of open threads/processes</td><td>4096</td><td>nproc</td></tr><tr><td>Maximum file size</td><td>unlimited</td><td>fsize</td></tr><tr><td>Kernel parameter</td><td>Maximum virtual memory areas</td><td>262144</td><td><ul><li>All</li></ul></td><td>vm.max_map_count</td></tr></tbody></table>

For more information on these settings, see the [Settings section](https://productresources.collibra.com/docs/collibra/latest/Content/Settings/to_collibra-settings.htm).
