Стандартная установка на Linux
Пассворк не требователен к ресурсам сервера(-ов). Объемы необходимых ресурсов (RAM, CPU, HDD) и количество серверов зависят от количества активных пользователей, объема хранимых данных, а также требований к отказоустойчивости системы.
Технические требования — подробное описание технических требований
Рекомендуется включить SWAP файл для корректной сборки всех библиотек, если на сервере 2-4 ГБ RAM.
Docker-образы устроены таким способом, что все важные данные вынесены в директории, которые являются общими с хостовой машиной, поэтому вы можете останавливать, удалять и создавать новые контейнеры.
Конфигурационные файлы также хранятся в монтируемых директориях, поэтому вы можете произвести большинство изменений конфигурации компонентов без внесения изменений непосредственно в Docker-образы или контейнеры. Для этого внесите изменения в файл конфигурации необходимого компонента и перезапустите контейнер.
Сборка состоит из 6 контейнеров. Часть контейнеров запускается обязательно, а другая часть может быть включена или отключена с помощью изменения переменной окружения COMPOSE_PROFILES в файле переменных окружения .env:
Nginx — образ на основе официального образа Nginx. Запускается по умолчанию.
PHP — образ с PHP и PHP-FPM на основе Ubuntu. Запускается по умолчанию.
Cron — отдельный контейнер на основе PHP образа для запуска задач по расписанию. Запускается по умолчанию.
PSMDB — образ на основе официального образа Percona Server for MongoDB. Запуск можно отключить, если используется внешняя MongoDB\PSMDB.
Postfix — образ с Postfix на основе Ubuntu. Можно отключить, если уведомления отправляются через PHP Mailer.
Certbot — официальный образ Certbot от Let’s Encrypt. Необходим, если используется сертификат от Let’s Encrypt. Можно отключить, если вы используете другие сертификаты SSL.
DEB-based
RPM-based
- Скачайте и установите Docker. Минимальная требуемая версия 18.06.0. Официальное статья об установке — https://docs.docker.com/engine/installation/
- Установите и включите Docker Compose плагин, если он не был установлен ранее. Официальная статья об установке — https://docs.docker.com/compose/install/linux/
Установка Docker и Docker compose на Red OS, Astra Linux и других отечественных диcтрибутивах может отличаться от официальных инструкций для Docker и Docker compose.
Мы рекомендуем использовать Docker, установленный не через snap.
Для установки Пассворка необходимо скачать и запустить скрипт, который установит необходимые компоненты для работы скриптов.
Создать директорию и перейти в нее:
Скопировать скрипт установки:
Проверьте хеш от файла passwork_compose_install.sh, чтобы убедиться в подлинности файла:
Система должна выдать сообщение passwork_compose_install.sh: OK
Если вы выполняете установку не от имени root — необходимо убедиться, что пользователь состоит в группе docker.
Проверить можно следующим способом:
Добавить пользователя в группу docker можно так:
Дать скрипту права запуска и запустить его:
Скрипт использует apt или dnf, а также curl. Если в вашей сети используется прокси сервер, необходимо добавить переменные окружения: export http_proxy=http://proxy.example.com:8080 export https_proxy=http://proxy.example.com:8080
Действия, выполняемые скриптом
- Проверка установленного Docker
- Проверка версии Docker (выше, чем 18.06.0)
- Проверка запущенного Docker
- Проверка пользователя на членство в группе docker или имения права sudo
- Проверка установлен и включен плагин Docker compose
- Проверка системы на принадлежность к deb или rpm дистрибутиву
- Установка дополнительных утилит для корректной работы скриптов curl, unzip и jq
- Запрос ввода сертификата клиента Пассворка
- Проверка соответствия сертификата формату
- Проверка действительности сертификата
- Скачивание и распаковка архива с файлами docker-compose сборки
- Проверка файла переменных окружения и добавление номера сертификата
- Выполнение скрипта обновления кода Пассворк
- Выполнение docker compose up -d
Процесс выполнения скрипта установки
Скрипт выполнит проверку прав текущего пользователя, а также версии необходимых компонентов. В случае возникновения ошибок скрипт создаст лог в формате install_log_date.log и поместит в него ошибки:

В процессе выполнения будет запрошен номер сертификата из клиентского портала:

После окончания выполнения скрипта
Скрипт автоматически выполнит docker ps. Пожалуйста, проверьте список запущенных контейнеров. Если контейнеры не были запущены, проверьте вывод и лог установки. Пример корректного вывода:

После сборки и запуска контейнеров Пассворк будет доступен по ссылке https://your_servername.
По умолчанию Пассворк использует самоподписанный сертификат, который автоматически генерируется при установке, поэтому при первом открытии страницы вы увидите сообщение о том, что браузер не доверяет сертификату сайта.
На первом шаге система предложит выбрать язык интерфейса.

Чек-лист параметров покажет все ли компоненты установлены на вашем сервере

По умолчанию Пассворк в Docker обращается к сервису c именем db, поэтому необходимо изменить строку подключения на третьем этапе первоначальной установки. Строка подключения — mongodb://db:27017

Пассворк сгенерирует новый ключ для серверного шифрования. Если вы подключаете Пассворк к существующей базе данных, то укажит имеющийся ключ шифрования.
Не вводите ключ, который был сгенерирован не в Пассворк. Пассворк использует специальные безопасные алгоритмы генерации новых ключей в подходящих форматах. Использование ключей сгенерированных сторонними средствами может привести к не корректной работе

Лицензионные ключи можно скачать в вашем клиентском портале Пассворка или запросить у менеджеров.

Вы можете перейти к использованию полноценных сертификатов.
- Для сертификатов, изданных доверенным издателем;
- Для сертификатов, выпущенных доменными центрами сертификации вашей организации.
Переименовать и поместить ваш SSL-сертификат или цепочку сертификации в ./conf/ssl
privkey.pem— приватный ключ,
fullchain.pem — сертификат\цепочка сертификации:
Вы можете настроить Let’s Encrypt, если у вас нет доменного центра сертификации (сертификата, выпущенного доверенным центром), но есть публичное DNS-имя сервера.
Отредактировать файл — .env изменить и дополнить следующие параметры:
Сохранить выполненные изменения и запустить контейнер
Проверить логи контейнера на получение сертификата
Пример выпуска сертификата

Пересоздать контейнеры для обновления данных с использованием новых сертификатов
Пассворк станет доступен по протоколу HTTPS с использованием сертификата от Let’s Encrypt.
update.sh — выполняет обновления кода приложения до последней версии, доступной в вашей лицензии
db-backup.sh — выполняет резервное копирование в папку backup
db-restore.sh — выполняет восстановление резервной копии. Если не передано имя резервной копии, то будет выведен список доступных копий.
collect-log.sh — выполняет сбор логов компонентов. Требуется в случае необходимости отладки и для отправки логов в службу технической поддержки.
collect-conf.sh — выполняет сбор файлов конфигурации компонентов. Требуется в случае необходимости отладки и для отправки файлов конфигурации в службу технической поддержки.
docker compose stop — остановить сервис
docker compose restart — перезапустить сервис
docker compose start — запустить остановленный сервис
docker compose down — удалить сервис. Данные включая БД и файлы конфигурации, сохранятся.
Большая часть настроек может быть произведена через переменные окружения в .env или изменения файла конфигурации отдельного компонента:
Переменная | Описание | По умолчанию |
CERT | Номер сертификата Пассворк. Используется в скрипте обновления для получения файлов приложения с Портала Клиента | XXX-XXX-XXX-XXX-XXXXXXXXXXXX |
USE_LETSENCRYPT | Использовать certbot для выпуска SSL сертификатов или нет | false |
LETSENCRYPT_STAGING | Тестовый режим для certbot. Полезно при отладке, так как Let’s Encrypt имеет лимит на количество запросов. По умолчанию true, чтобы избежать ошибок из-за неправильно настроенной DNS-записи или других. Рекомендуется сначала использовать staging. | true |
LETSENCRYPT_REG_EMAIL | Email для Let’s encrypt | |
DOMAIN | Домен для Let’s encrypt | |
ALIAS_CONTAINERS_NAME | Префикс имен контейнеров | "passwork_" |
COMPOSE_PROFILES | Профили Compose, позволяющий включить\отключить запуск сервисов | "local_notify,mongo" |
PHP_CONF_DIR | Директория с конфигами PHP | ./conf/php |
PHP_LOG_DIR | Директория с логами PHP | ./log/php |
APP_DIR | Директория с кодом сервера Пассворк | ./www/latest (симлинк на последнюю версию скачанную через ) |
APP_LOG_DIR | Директория с логами приложения | ./log/app |
KEYS_DIR | Директория с ключами лицензии, а также основным файлом конфигурации приложения | ./conf/keys |
NGINX_CONF_DIR | Директория с конфигами Nginx | ./conf/nginx |
NGINX_LOG_DIR | Директория с логами Nginx | ./log/nginx |
SSL_DIR | Директория с SSL сертификатами | ./conf/ssl |
MONGO_DATA_DIR | Директория с данными mongo | ./data/mongo |
CUSTOM_CA_DIR | Директория для дополнительных корневых сертификатов (например, для LDAPS) | ./conf/custom_ca |
POSTFIX_LOG_DIR | Директория с логами Postfix | ./log/postfix |
POSTFIX_CONF_DIR | Директория с конфигами Postfix | ./conf/postfix |
После внесения изменения в .env или файл конфигурации отдельного компонента, необходимо выполнить перезапуск соответствующего контейнера
Для вступления в силу изменений в config.ini , выполните
