# Описание

> Пассворк упрощает совместную работу с корпоративными паролями. Все данные безопасно хранятся на вашем сервере, а сотрудники быстро находят нужные пароли. Администратор управляет правами пользователей, отслеживает все действия и изменения.

# Рекомендации по установке

### Минимальные системные требования

Пассворк не требователен к ресурсам сервера(-ов). Объемы необходимых ресурсов (RAM, CPU, HDD) и количество серверов зависят от количества активных пользователей, объема хранимых данных, а также требований к отказоустойчивости системы.

> Показатель IOPS имеет большое значения для скорости работы базы данных, поэтому желательно использовать SSD диски.

Варианты установки Пассворк на выделенных или виртуальных серверах

### 1. Все на одном сервере

Обычно подходит для редакций до 500 пользователей, без специальных требований по хранению данных:

Кол-во пользователей | RAM | CPU | HDD
--- | --- | --- | ---
до 50 | 2-4 ГБ | 4 | 100 ГБ
до 100 | 4-8 ГБ | 8 | 150 ГБ
до 500 | 8-16 ГБ | 8 | 200 ГБ

2. Сервер приложения и база данных на разных серверах

База данных и сервер приложения разносятся по разным серверам.

RAM-1, CPU-1, HDD-1 — сервер приложения.

RAM-2, CPU-2, HDD-2 — база данных.

Кол-во пользователей | RAM-1 | CPU-1 | HDD-1 | RAM-2 | CPU-2 | HDD-2
--- | --- | --- | --- | --- | --- | ---
до 50 | 2-4 ГБ | 4 | 100 ГБ | 2-4 ГБ | 4 | 100 ГБ
до 100 | 4 ГБ | 8 | 100 ГБ | 4 ГБ | 4 | 150 ГБ
до 500 | 8-16 ГБ | 8 | 100 ГБ | 8 ГБ | 8 | 200 ГБ
до 1000 | 8-16 ГБ | 8 | 100 ГБ | 16 ГБ | 8 | 200 ГБ
до 10000 | 16-32 ГБ | 16 | 100 ГБ | 16-32 ГБ | 16 | 200 ГБ

# Установка

## Установка Docker

Скачайте и установите Docker CE (https://docs.docker.com/engine/installation/).

Cкачайте и установите Docker-сompose (https://docs.docker.com/compose/install/)

Обновите систему:

Установите Git:

Скачайте файлы управления и шаблонные конфиг-файлы

Создайте директорию /server и склонируйте файлы:

Склонируйте репозиторий. Укажите логин и пароль, которые вам сообщили менеджеры Пассворк.

> Где взять логин и пароль

> Мы отправляем логин и пароль к нашему репозиторию после покупки Пассворк.

Перейдите в каталог для Docker Compose

В каталоге есть файл docker-compose.override.yml , в котором можно указать назначение портов, на случай если порты могут быть заняты.

Запустите Docker Compose

Проверьте, что контейнеры запустились и работают:

### Инсталляция

При первом открытии Пассворк вы увидите диалог инсталляции, который проверит корректность настройки сервера и позволит ввести базовые параметры.

Тут нужно подправить сервер и указать строчку: mongodb://db:27017

Нужно будет сохранить ключ шифрования для восстановления, если появится такая необходимость.

Зарегистрируйте администратора Пассворк

Введите логин и пароль для первого пользователя. Пользователь автоматически станет администратором и владельцем организации.

# Обслуживание

## Настройка фоновых задач

Фоновые задачи — это задачи, которые выполняются по планировщику в фоновом режиме. Например, синхронизация LDAP, загрузка фавиконов и другие задачи, которые требует много времени, постоянного выполнения или распределения ресурсов.

Проверить список запланированных задач и корректность всех настроек можно на странице «Фоновые задачи».

Для настройки фоновых задач необходимо настроить планировщик вашей операционной системы Cron (для Линукс) или Windows Scheduler. Планировщик должен запускать скрипт `<папка с Пассворк>/app/tools/run-scheduled-tasks.php` каждую минуту.

Скрипт проанализирует какие задачи необходимо запустить и для каждой задачи создаст отдельный поток. При выполнении каждая задача записывает лог в папку `<папка Пассворк>/app/logs/` в файлы вида `task-*.log`, например, `task-62f8e9624e0446fba40bbb12.log`. После завершения задачи вы можете посмотреть и скачать лог со страницы Фоновые задачи → История задач.

Системные логи планировщика (с ошибками) находятся в `<папка Пассворк>/app/logs/run-command.log`.

## О Docker-образах

Docker-образы устроены таким способом, что все важные данные вынесены в общие с хостовой машиной папки. Поэтому вы можете смело останавливать, удалять и создавать новые контейнеры. Конфигурационные файлы так же хранятся в общих папках (т.е. не в контейнере), поэтому вы можете провести любую настройку Nginx, PHP и MongoDB без внесения изменений непосредственно в образы или контейнеры. Просто внесите изменения в конфиг файлы и перезапустите контейнер или сервисы.

Если вам необходимо внести изменения в образ, то войдите в контейнер, внесите изменения и затем сделайте коммит в ваш образ командой

Более подробно описано в официальной документации Docker.

## Полезные команды

Скопируйте утилиту dexec в /usr/bin/:

Вход в контейнер:

Восстановление прав для файлов сайта (требуется после обновления):

Перезагрузка Nginx без остановки:

Контейнеры запущены с опцией autostart. Это означает, что Docker автоматически перезапустит контейнер, если он по каким-либо причинам остановится. Поэтому, если вам необходимо остановить контейнер, сперва отключите autostart:

Включить autostart обратно:

Без опции autostart вы можете остановить контейнеры принудительно:

Обратите внимание, что если опция autostart включена, то эти команды перезапустят Nginx и MongoDB, Используйте ее в крайних случаях, так как это может повлечь порчу данных.

## Структура файлов

Файлы конфигураций:

Данные (база данных):

Логи:

Сайты:

## Пример: Как изменить конфигурацию Nginx или PHP

Отредактируйте файлы:

Перезапустите nginx и php-fpm:

## Настройка почты

Nginx контейнер использует Postfix для отправки почты. Все конфигурационные файлы вы можете найти здесь:

Отредактируйте их под свои нужды. Перезапустите Postfix, чтобы изменения вступили в силу.

## Пример настройки Postfix

Откройте конфигурационный файл `/server/conf/postfix/main.cf`.

Убедитесь в том, что параметр myhostname совпадает с полным доменным именем вашего сервера:

### Настройка имен и паролей SMTP

Откройте или создайте файл `/server/conf/postfix/sasl_passwd`.

Добавьте SMTP хост, имя пользователя и пароль должны быть записаны в следующем формате:

Если вы хотите использовать нестандартный TCP-порт (например, 587), используйте следующий формат:

для Gmail запись будет выглядеть следующим образом:

Создайте хэшированную базу данных для Postfix, выполните команду postmap:

После успешного выполнения команды в директории /server/conf/postfix должен появиться новый файл sasl_passwd.db.

### Защита файла с паролями и хэш-файла.

Файлы /server/conf/postfix/sasl_passwd и /server/conf/postfix/sasl_passwd.db, созданные в предыдущих шагах, содержат ваши учетные данные SMTP в виде простого текста. По соображениям безопасности вы должны изменить права доступа к ним, так чтобы только пользователь root мог читать и записывать в файл.

Выполните следующие команды, чтобы изменить владельца файлов на root и обновить права доступа для файлов:

### Конфигурация релей сервера

Откройте файл `/server/conf/postfix/main.cf`.

Измените параметр relayhost, на свой внешний SMTP релей. Если в файле sasl_passwd был указан нестандартный TCP-порт, то вы должны использовать тот же порт при настройке параметра relayhost.

Укажите SMTP релей:

для Gmail запись будет выглядеть следующим образом:

В конце файла добавьте следующие параметры для включения аутентификации:

Сохраните изменения.

Перезапустите Postfix: