# Requirements for installing repmgr

repmgr is developed and tested on Linux and OS X, but should work on any UNIX-like system supported by PostgreSQL itself. There is no support for Microsoft Windows.

From version 4.0, repmgr is compatible with all PostgreSQL versions from 9.3, including PostgreSQL 10. Note that some &repmgr; functionality is not available in PostgreSQL 9.3 and PostgreSQL 9.4.

If upgrading from &repmgr; 3.x, please see the section upgrading-from-repmgr-3.

All servers in the replication cluster must be running the same major version of PostgreSQL, and we recommend that they also run the same minor version.

&repmgr; must be installed on each server in the replication cluster. If installing repmgr from packages, the package version must match the PostgreSQL version. If installing from source, repmgr must be compiled against the same major version.

A dedicated system user for &repmgr; is not required; as many &repmgr; and repmgrd actions require direct access to the PostgreSQL data directory, these commands should be executed by the `postgres` user.

Passwordless `ssh` connectivity between all servers in the replication cluster is not required, but is necessary in the following cases:

- if you need &repmgr; to copy configuration files from outside the PostgreSQL data directory (in which case `rsync` is also required)

- to perform switchover operations

- when executing `repmgr cluster matrix` and `repmgr cluster crosscheck`

Consider setting `ConnectTimeout` to a low value in your SSH configuration. This will make it faster to detect any SSH connection errors.

We recommend using a session multiplexer utility such as `screen` or `tmux` when performing long-running actions (such as cloning a database) on a remote server - this will ensure the &repmgr; action won't be prematurely terminated if your `ssh` session to the server is interrupted or closed.