# Configuration file

repmgr and &repmgrd; use a common configuration file, by default called `repmgr.conf` (although any name can be used if explicitly specified). `repmgr.conf` must contain a number of required parameters, including the database connection string for the local node and the location of its data directory; other values will be inferred from defaults if not explicitly supplied. See section for more details.

## Configuration file format

`repmgr.conf` is a plain text file with one parameter/value combination per line.

Whitespace is insignificant (except within a quoted parameter value) and blank lines are ignored. Hash marks (`#`) designate the remainder of the line as a comment. Parameter values that are not simple identifiers or numbers should be single-quoted.

To embed a single quote in a parameter value, write either two quotes (preferred) or backslash-quote.

Example of a valid `repmgr.conf` file:

    # repmgr.conf

    node_id=1
    node_name= node1
    conninfo ='host=node1 dbname=repmgr user=repmgr connect_timeout=2'
    data_directory = '/var/lib/pgsql/12/data'

Beginning with repmgr 5.0, configuration file parsing has been tightened up and now matches the way PostgreSQL itself parses configuration files.

This means `repmgr.conf` files used with earlier &repmgr; versions may need slight modification before they can be used with &repmgr; 5 and later.

The main change is that &repmgr; requires most string values to be enclosed in single quotes. For example, this was previously valid:

    conninfo=host=node1 user=repmgr dbname=repmgr connect_timeout=2

but must now be changed to:

    conninfo='host=node1 user=repmgr dbname=repmgr connect_timeout=2'

## Configuration file items

The following sections document some sections of the configuration file:

For a full list of annotated configuration items, see the file repmgr.conf.sample.

For &repmgrd;-specific settings, see .

The following parameters in the configuration file can be overridden with command line options:

- `-L/--log-level` overrides `log_level` in `repmgr.conf`

- `-b/--pg_bindir` overrides `pg_bindir` in `repmgr.conf`

## Configuration file location

The configuration file will be searched for in the following locations:

- a configuration file specified by the `-f/--config-file` command line option

- a location specified by the package maintainer (if repmgr as installed from a package and the package maintainer has specified the configuration file location)

- `repmgr.conf` in the local directory

- `/etc/repmgr.conf`

- the directory reported by pg_config --sysconfdir

Note that if a file is explicitly specified with `-f/--config-file`, an error will be raised if it is not found or not readable, and no attempt will be made to check default locations; this is to prevent repmgr unexpectedly reading the wrong configuration file.

If providing the configuration file location with `-f/--config-file`, avoid using a relative path, particularly when executing and , as &repmgr; stores the configuration file location in the repmgr metadata for use when &repmgr; is executed remotely (e.g. during ). &repmgr; will attempt to convert the a relative path into an absolute one, but this may not be the same as the path you would explicitly provide (e.g. `./repmgr.conf` might be converted to `/path/to/./repmgr.conf`, whereas you'd normally write `/path/to/repmgr.conf`).