Standard installation
...
Linux
Passwork Migration

Migration from Linux to Docker

12min

These instructions are intended for a single Passwork installation and are not suitable for a fault-tolerant solution

Preparation

Check Passwork version

  1. Check the installed version of Passwork — cat /var/www/app/config/config.php | grep version. If the version is:
    1. lower than 0602xx — you must upgrade to the current version.
    2. lower than 06xxxx — you need to migrate to Passwork 6.

Create a MongoDB backup

  1. Create a MongoDB backup:
    1. Local installation (MongoDB) without authorization — mongodump --archive > mongo.dump
    2. Local installation (MongoDB) with authorization — mongodump --archive --authenticationDatabase admin --username=username --password=password > mongo.dump
    3. Installing (MongoDB) on a separate server — mongodump --host host:port --archive --authenticationDatabase admin --username=username --password=password > mongo.dump

Copy the config.ini file and the license key

  1. Create a copy of the config.ini configuration file, by default located in — /var/www/app/app/config/config.ini
  2. Create a copy of the default license key located in — /var/www/app/keys/passwork-*.keys

Copy a certificate

If Docker installation will use the same domain name and SSL certificate as the previous Passwork installation, then copy the SSL certificates if HTTPS connection is configured You can find the paths to the certificate, key and full chain files using the commands:

  • DEB (Debian, Ubuntu, etc) — grep -rE 'SSLCertificate(File|ChainFile|KeyFile)' /etc/apache2/sites-enabled/
  • RMP (RedHat, CentOS, etc) — grep -rE 'SSLCertificate(File|ChainFile|KeyFile)' /etc/httpd/conf.d/

Installation

Install the main components

  1. Install Docker and Docker Compose.
  2. Create and navigate to the directory where you plan to deploy the new Passwork Docker build.

Download the scripts

  1. Download the installation script — wget https://repos.passwork.pro/repository/docker/passwork_compose_install.sh
  2. Download the migration script — wget https://repos.passwork.pro/repository/docker/migrate.sh
  3. Assign execution rights — chmod +x ./*.sh

Transfer files from the Preparation stage

  1. Create a directory — mkdir ./linux
  2. Place the previously copied files from the Preparation step into the linux directory:
    1. Configuration file — config.ini
    2. License key — passwork-*.keys
    3. MongoDB backup
    4. SSL certificates of Passwork website

Start the migration process

  1. Run the script with the -ml flag — sudo ./passwork_compose_install.sh -ml
  2. The installation script will perform a basic installation of the latest version of Passwork available with your license and automatically run the migration script.

Optional steps after installation

  1. After the scripts are finished, check that the new installation is working properly and make adjustments if necessary
  2. To add mail server or LDAPS protocol root certificates to trusted certificates, copy the .pem or .crt root certificates to the ./conf/custom_ca directory and restart the PHP container — docker compose restart passwork_php
  3. To change the SSL certificate used, copy the certificate/certificate chain to ./conf/ssl/fullchain.pem and the private key to ./conf/ssl/privkey.pem and restart the Nginx container — docker compose restart passwork_nginx

If you get an authorization error

Issue: Access error to one of the databases when trying to create a full backup:

shell


Solution: Log in to the MongoDB management shell as the current administrator and add the role:

shell