Installing Docker
- Download and install Docker version 18.06.0 or higher. Official installation guide.
- Install and enable the Docker Compose plugin. Official installation guide.
We recommend using Docker installed not via snap.
Preparing environment for offline installation
Obtaining components for Passwork
To install Passwork, you need to download files and the script.
- Create a directory and navigate into it:
- shell
mkdir your_directory
cd your_directory
Obtain the following components:
- Passwork installation script
- Archive with Docker Compose build files
- Container image Nginx
- Container image Percona Server for MongoDB
- Container image PHP
- Container image Postfix
- Container image Alpine
Obtaining Passwork
Go to the Customer Portal and get the latest available version of Passwork with a digital signature:

To verify the digital signature, you also need the Passwork public key public.key, ways to obtain it:
Manually
- Open URL;
- Copy all the content;
- Paste into a file and save it with the name — public.key.
Automatically (curl or wget)
- curl
- wget
curl -o public.key https://passwork.pro/public-key
wget -O public.key https://passwork.pro/public-key
Preparing and starting installation
Move the downloaded files to the Linux server into the directory where you plan to install Passwork:
- In the created directory, create a subdirectory passwork_images
- shell
mkdir your_directory/passwork_images
- Move *.tar images into
passwork_images
- shell
cd your_directory
mv *.tar ./passwork_images
- The file and folder structure after performing these actions should be as follows:
├── Passwork-xxxxxx.zip
├── xxxxxx.sig
├── public.key
├── passwork_compose_install.sh
├── passwork_compose_last.tar.gz
└── passwork_images
├── alpine.tar
├── nginx.tar
├── php8.3.tar
├── postfix.tar
└── psmdb7.tar
Checking user permissions
If you are performing the installation not as root — you need to make sure the user is in the docker group.
You can check this as follows:
- shell
id $USER | grep docker
You can add the user to the docker group like this:
- shell
sudo usermod -a -G docker $USER
Running offline installation script
- Grant execution rights to the script:
- shell
chmod +x ./*.sh
- In the
your_directorydirectory, run the installation scriptpasswork_compose_install.shwith the-oflag
- shell
./passwork_compose_install.sh -o
By default, the script verifies the digital signature of the archive using the provided public key. If the signature is invalid or missing, the update will be aborted.
- If you trust the source of the archive, you can skip signature verification:
- shell
./passwork_compose_install.sh -o --skip
After installation, the script will automatically execute the docker ps command. Please check the list of running containers. If containers were not started, check the output and installation log. Example of correct output:

Before configuring the web server with enabled SSL termination, please review the configuration specifics.
Installation wizard
After assembling and launching the containers, Passwork will be available at the link https://your_servername.
By default, Passwork uses a self-signed certificate that is automatically generated during installation, so when you first open the page you will see a message that the browser does not trust the site’s certificate.
Choose language
At the first step, the system will prompt you to select the interface language:

Server settings checklist
The checklist will show whether all components are installed on your server:

Connecting to database
Use the default MongoDB address to connect:

Zero knowledge mode
Client-side encryption adds a second layer of data protection and implements the Zero Knowledge model. This ensures maximum security when storing Passwork.
Client-side encryption mode is fundamental; it cannot be enabled or disabled in an already running Passwork (this will result in your inability to open data).
Learn more about how client-side encryption works — cryptography

Configuring Passwork
Passwork will generate a new key for server encryption. If you are connecting Passwork to an existing database, specify the existing encryption key:
Do not enter a key that was generated outside of Passwork. Using keys generated by third-party tools may cause errors.

License key
License keys can be downloaded from your Passwork Customer Portal:

SSL certificate configuration
During installation, Passwork generates a self-signed certificate. When the installation is complete, you can use full SSL certificates.
Using your own certificate
- For certificates issued by a trusted issuer;
- For certificates issued by your organization's domain certification centers.
Rename and place your SSL certificate or certification chain in ./conf/ssl
- privkey.pem — private key
- fullchain.pem — certificate\certification chain
Restart the passwork_nginx container to apply:
- shell
docker restart passwork_nginx