Release candidate
Manual installation

Windows Server

39min

Installing Passwork on following OS:

  • Windows Server 2016
  • Windows Server 2019
  • Windows Server 2022

1. Minimum system requirements

Passwork is not resource demanding. The amount of resources required (RAM, CPU, HDD) and the number of servers depend on the number of active users, the amount of data stored, and the requirements for system fault tolerance.

2. Basic steps before installation

Run PowerShell as Administrator:

  • Right-click on the Start icon in the lower left corner of the screen;
  • Select Windows PowerShell (Administrator) from the context menu.

If Windows Server 2016 is used, you must enable the TLS protocol to download packages to the operating system as described below

PowerShell


Create a temporary directory for downloading packages and archives:

PowerShell


Override user group names using SID:

PowerShell


Install the IIS role with the module:

PowerShell


3. PHP installation

Download the PHP archive:

PowerShell


In case of an error, you can download the archive manually — https://repos.passwork.pro/repository/windows_packages/php_build/83/php_latest.zip

Unzip the contents to Program Files:

PowerShell


Add PHP utilities to the PATH variable environment:

PowerShell


To test it, open a new PowerShell window and run the php -v cmdlet

Set Users permissions to the group for the PHP directory:

PowerShell


4. Installing MongoDB database

Download MongoDB installer:

PowerShell


In case of an error, you can download the installer manually — https://repos.passwork.pro/repository/windows_packages/mongodb_database_latest.msi

Install MongoDB by default:

PowerShell


To install MongoDB on another drive, you need to add "INSTALLLOCATION=A:\MongoDB"

Create a directory for the MongoDB administration utilities:

PowerShell


Download administration utilities:

PowerShell


In case of an error, you can download the installer manually — https://repos.passwork.pro/repository/windows_packages/database_tools_latest.zip

Unzip content:

PowerShell


Add administration utilities to the PATH variable environment:

PowerShell


5. Installing modules for IIS

Download archive with modules:

PowerShell


In case of an error, you can download the installer manually — https://repos.passwork.pro/repository/windows_packages/iis_package_latest.zip

Unzip modules for IIS:

PowerShell


Install Visual C++:

PowerShell


Install PHP Manager:

PowerShell


Install URL Rewrite:

PowerShell


6. Obtaining a release candidate Passwork

Create a directory for Passwork:

PowerShell


Go to the Passwork customer portal and copy your certificate number:

Document image


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

PowerShell


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

Get the latest version of Passwork by entering your certificate number:

PowerShell


Unzip Passwork to the IIS directory:

PowerShell


Create a web.config for redirect rules:

PowerShell


Set permissions for the Passwork location:

PowerShell


7. Configuring IIS web server

Connect modules in PowerShell to manage IIS:

PowerShell


Unlock the handlers configuration in IIS:

PowerShell


Get the ports in use by the operating system:

PowerShell


Check busy default ports for the website:

PowerShell


Create a website (Passwork Web Site) with HTTP protocol:

PowerShell


Register a PHP version for the website:

PowerShell


Activate drivers and extensions for the website:

PowerShell


Get the PHP version number into a variable:

PowerShell


Update the list of HTTP methods allowed for the PHP handler:

PowerShell


Restart the IIS web server:

PowerShell


Open http://localhost:80 or http://localhost:5353 test the connection to Passwork.

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. Configuring Passwork for HTTPS access

8.1 Generating self-signed SSL certificate

Check busy default ports for the website:

PowerShell


Create a self-signed HTTPS certificate with a server name value:

PowerShell


8.2 Creating IIS binding for access to Passwork over HTTPS protocol

Create HTTPS binding in the Passwork website:

PowerShell


Get the current binding of the Passwork website:

PowerShell


Bind a previously created self-signed certificate to the HTTPS protocol of the website:

PowerShell


Restart the IIS web server:

PowerShell


Open https://localhost:443 or https://localhost:444 to test the connection to Passwork

8.3 Configuring Passwork to work over HTTPS protocol

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.

Set the ;session.cookie_secure parameter in the file C:\Program Files\php8.3\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-demanding.

See a guide on setting up background tasks.