Release candidate
Manual installation

Alma/Rocky/CentOS

44min

Installing Passwork on following OS:

  • CentOS 8 Stream, Alma Linux 8, Rocky Linux 8.
  • CentOS 9 Stream, Alma Linux 9, Rocky Linux 9.

On this page you can switch between blocks of code to view the commands applicable to your version of the OS

1. Minimum system requirements

Passwork is not resource-heavy. How much disk space, RAM and CPU power you will need depends on the number of active users, the amount of stored data, and your requirements for fault-tolerance.

If your server has 2-4 GB of RAM, we recommend enabling the SWAP file for libraries to compile properly.

2. Steps before installation

First, gain root access and update the local packages:

shell


Then, install web-server Apache2 and curl data transfer tool:

bash


Run httpd.service:

shell


And enable autostart:

shell


2.1 Installing and setting up Firewalld

Install the dynamically managed firewall Firewalld:

shell


Run firewalld.service:

shell


Enable autostart:

shell


Allow HTTP services in firewalld:

shell


Allow HTTPS services in firewalld:

shell


And apply the changes to firewalld:

shell


2.2 Disabling SELinux and restarting ОС

Edit the /etc/selinux/config configuration file:

shell


Change theSELINUX parameter from enforcing to disabled:

shell


Save the changes (Ctrl+O) and exit the terminal (Ctrl+X). Then, restart your system to apply the changes to SELinux:

shell


3. Installing PHP

Install the EPEL package and YUM package management tool:

Shell


Download and install the latest EPEL repository:

OS 8
OS 9


Download and install the repository for access to PHP versions:

OS 8
OS 9


Enable the PHP 8.3 modile from REMI repository:

Shell


Install PHP and its extensions:

Shell


3.1 Installing a PHP MongoDB driver

Install a PHP MongoDB driver:

Shell


Create configuration files for PHP MongoDB startup and activation:

Shell


3.2 Additional opcache configuration

Get the location of the opcache configuration file:

shell


Edit the configuration file:

shell


Add the following lines to the configuration file:

shell


4. Installing MongoDB database

Create a file to add MongoDB into YUM package manager

Shell


Add the following lines into the file:

OS 8
OS 9


Install MongoDB:

Shell


Run mongod.service:

shell


And enable autostart:

shell


5. Obtaining a release candidate Passwork

Go to the Passwork customer portal and copy the certificate number for the Release Candidate:

Document image


Verify the available release candidate version of Passwork from the customer portal using the copied certificate number by query:

Shell


You need to make sure that a release candidate version of Passwork is available for downloading — 07xxxxxx

Get Passwork using a query:

Shell


Unzip the release candidate version of Passwork to a physical location:

shell


Give apache owner privileges for the files and directories:

shell


6. Setting up Apache2 for HTTP access to Passwork

Open the virtual host configuration file for HTTP:

shell


Edit the file so it looks as follows:

shell


Restart the web server (httpd.service):

shell


You can open http://passwork.local or http://127.0.0.1 to test your Passwork connection

7. Passwork parameter checklist

When you connect to Passwork for the first time, you will need to go over the checklist that includes:

  • Automatic parameter checking
  • Checking connection to MongoDB database

Change the connection to MongoDB to the address — mongodb://localhost:27017

  • Generating an encryption key for MongoDB
  • License verification

After finishing the checklist, you will be offered to create the first Passwork user and set their login, password and email address for notifications.

This user is always local and the owner of Passwork by default, in case of assigning LDAP/SSO user an owner, it will automatically become local and you will not be able to authorise in Passwork

8. Setting up HTTPS connection

8.1 Generating a self-signed SSL certificate

Install a SSL module for Apache2:

shell


Create a new directory to store the private key and the certificate in:

shell


Use OpenSSL to generate a self-signed X.509 certificate for Apache2:

shell

  • Common Name (CN) — Specify the IP of your server or host. This field is important, as the certificate should match the domain or IP of your website;
  • subjectAltName (SAN) — Альтернативное имя домена или IP-адрес.

Generate Diffie-Hellman parameters with the key length of 2048:

shell


Add Diffie-Hellman parameters to the self-signed certificate:

shell


Give root access to the user to secure the private key and the certificate:

shell


8.2 Configuring a virtual host to access Passwork via HTTPS

Open the virtual host configuration file for HTTPS connection:

shell


Find the section that starts with <VirtualHost _default_:443> and edit it as follows:

  • Uncomment the DocumentRoot line and change the path to Passwork's root folder /var/www/public
  • Uncomment the ServerName line and change www.example.com to the IP or the domain of the server (it should match the Common Name of the certificate):
Shell

  • Add the <Directory> directive after ServerName:
Shell

  • Comment the SSLProtocol and SSLCipherSuite lines:
Shell

  • Update the paths to certificate files, which were generated earlier:
shell

  • After editing the file, check if the virtual host configuration file matches the example:
shell


Restart the web server (httpd.service):

bash


Check the HTTPS connection to Passwork using https://passwork.local

8.3 Setting up Passwork for work over HTTPS

When using a secure SSL connection (HTTPS), client browsers require certain flags to process Passwork data.

If the session.cookie_secure flag is not set, browsers will not be able to establish a connection, which may result in authorization errors.

Enable the ;session.cookie_secure parameter in /etc/php.ini:

bash


Do not set this parameter or reset it to its original value if you change your mind about using SSL and work over the HTTP protocol.

9. Configure background tasks

Background tasks are tasks that are executed by the scheduler in the background. For example, LDAP synchronisation, loading favicons, and other tasks that are time-consuming, persistent, or resource-allocating.

See a guide on setting up background tasks.

Updated 09 Mar 2025
Doc contributor
Doc contributor
Did this page help you?