Linux
- Установленный Docker и Docker Compose плагин
- Запуск пользователем состоящим в группе docker
- Поддержка процессором AVX архитектуры
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. Можно отключить, если уведомления отправляются через PHPMailer.
Certbot — официальный образ Certbot от Let’s Encrypt. Необходим, если используется сертификат от Let’s Encrypt. Можно отключить, если вы используете другие сертификаты SSL.
update.sh — выполняет обновления кода приложения до последней версии, доступной в вашей лицензии.
db-backup.sh — выполняет создание резервной копии всех баз в папку backup.
db-restore.sh — выполняет восстановление резервной копии. Если не передано имя резервной копии, то будет выведен список доступных копий из папки backup.
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 выполните