4.3. Installation and Initial Setup #
This section describes installation of the ProGate management service and initial setup. ProGate management service is a set of applications that supports ProGate web interface.
4.3.1. Hardware and Software Requirements #
The ProGate management service requires an allocated or virtual server with the following minimum characteristics:
CPU: 8 cores
RAM: 16 GB
Disk space: 100 GB
Network interface: 1Gb/sec
ProGate runs on the following Linux-based operating systems:
ALT 9/10/11, ALT SP Release 10
Astra Linux 1.7/1.8
Debian 12/13
Red OS Murom 7.3/8.2
Red Hat Enterprise (RHEL) Linux 8/9
ROSA Chrome 2021.2
SUSE Linux Enterprise Server (SLES) 15
Ubuntu 22.04/24.04
4.3.2. Components #
ProGate is shipped as the package progate, which includes all the needed dependencies.
The following utilities are included in progate, but they can also be installed individually (for example, to only use the command line):
procopy(package)prosync(package)procheck(package)
Note
procheck is not available through the web interface yet. So it can only be used as a command-line utility.
4.3.3. Installation Process #
To install and configure the ProGate management service, follow the steps below.
Install the repository:
wget -O pgpro-repo-add.sh https://repo.postgrespro.ru/progate/progate/keys/pgpro-repo-add.sh sh pgpro-repo-add.sh
Install the package:
apt install progateThe result of the installation is as follows:
The user and group named
progateare created.The procopy, prosync, and procheck utilities are installed in the
/opt/pgpro/progate/bin/directory.The progate.service service is added but initially disabled.
Note
At this point, only the procopy, prosync, and procheck command-line utilities are available. The web interface is not yet ready and requires additional setup. So follow the instructions from Section 4.3.4.
4.3.4. Initial Setup #
To start working with the ProGate web interface, execute the following steps:
Create a dedicated schema.
The ProGate web interface requires a PostgreSQL/Postgres Pro database. In this database, create a dedicated schema where the web interface will store its support data. For example, let the schema name be
progate.Specify the database for the service.
To specify the database, in the environment file
/opt/pgpro/progate/etc/env_progate, edit the line under the comment below so that it looks as follows (for details, see Section 4.3.4.1):# PostgreSQL/Postgres Pro connection string PROGATE_DB="postgres://user:password@host:5430/dbname?sslmode=disable&search_path=progate"
Set the value of
search_pathabove to the name of the dedicated schema.When composing the connection string, double-check that:
The user specified in the connection string has permissions for the
progateschema.The schema is in the specified database.
Re-launch the
progate.serviceservice:systemctl enable progate.service
[Optional] If a firewall is used, allow network connections on the
TCP/8081port.
If all the steps are performed without errors, the ProGate management service is launched successfully. The ProGate web interface is available at http://<server IP address>:8081. See Section 4.3.5 for how to log in.
4.3.4.1. Setting up ProGate with the Environment File #
The environment file is located at /opt/pgpro/progate/etc/env_progate and has the contents like these:
# Port for progate_backend PROGATE_HTTP_SERVER_PORT="8081" # Progate backend serves static files from given directory PROGATE_HTTP_SERVER_STATIC_DIR="/opt/pgpro/progate/ui" # PostgreSQL/Postgres Pro connection string PROGATE_DB="postgres://user:password@host:5430/dbname?sslmode=disable&search_path=progate" # Logs format: json | pretty PROGATE_LOGS_FORMAT=pretty # Log level: debug | info | warn | error PROGATE_LOGS_LEVEL=info # Auth parameters # The length of the secret token must be greater than or equal to 32 characters PROGATE_AUTH_ACCESS_TOKEN_SECRET="mT-Y8ICZv-zhirL_j2K69vX_Upbo8B6rMKtplqv4U4I=" PROGATE_AUTH_ACCESS_TOKEN_LIFETIME="168h" PROGATE_AUTH_REFRESH_TOKEN_LIFETIME="720h" # Connection parameters PROGATE_CONNECTION_SERVICE_CHECK_CONNECTION_TIMEOUT="1.5s" # Path to prosync bin PROGATE_TRANSFER_WORK_PROSYNC_BIN="/opt/pgpro/progate/bin/prosync" # Path to procopy bin PROGATE_TRANSFER_WORK_PROCOPY_BIN="/opt/pgpro/progate/bin/procopy" # Path to directory with procopy/prosync configs and other progate_backend-specific service files PROGATE_TRANSFER_WORK_WORKING_DIR="/var/lib/progate/execution" PROGATE_TRANSFER_WORK_WORK_POLL_INTERVAL="5s" PROGATE_TRANSFER_WORK_TRANSFER_POLL_INTERVAL="5s" PROGATE_PROCESS_RUNNER_WAIT_POLL_INTERVAL="5s" PROGATE_PROCESS_RUNNER_MONITORING_START_POLL_INTERVAL="5s" PROGATE_PROCESS_RUNNER_STOP_PROCESS_WAIT_TIMEOUT="5m"
For how to set values of time environment variables, refer to Section 4.3.6.
4.3.4.2. Setting up ProGate with the Configuration File #
In addition to environment variables, ProGate can be set up by means of the .yaml configuration file. Pass the path to this file with the -c flag. For example:
/opt/pgpro/progate/bin/progate -c path/to/config.yaml
The configuration file defines the same characteristics as the environment variables and looks as follows:
http_server:
port: 8081
static_dir: "/opt/pgpro/progate/ui"
db: "postgres://dbaas@localhost:5430/dbaas?sslmode=disable&search_path=progate"
logs:
format: pretty
level: info
auth:
access_token_secret: "mT-Y8ICZv-zhirL_j2K69vX_Upbo8B6rMKtplqv4U4I="
access_token_lifetime: 168h
refresh_token_lifetime: 720h
connection_service:
check_connection_timeout: 1.5s
transfer_work:
prosync:
bin: "/opt/pgpro/progate/bin/prosync"
procopy:
bin: "/opt/pgpro/progate/bin/procopy"
working_dir: "/var/lib/progate/execution"
work_poll_interval: 5s
transfer_poll_interval: 5s
process_runner:
wait_poll_interval: 5s
monitoring_start_poll_interval: 5s
stop_process_wait_timeout: 5m
4.3.5. Logging in to the Web Application #
To log in to the web application, use the following credentials:
Login:
progatePassword:
progate
4.3.6. Setting Time Values #
In ProGate, time environment variables and configuration values follow the Golang duration string format. For example:
100 ms — 100 milliseconds
5.5s — five and a half seconds
5m — five minutes
5h — five hours
1h7m — one hour and seven minutes