Коробочная версия. Инструкция по администрированию

 

Содержание

Общее описание

Серверное Приложение YouGile выполняет функции, которые необходимы для использования в компании системы управления проектами YouGile. Для полного развёртывания YouGile на своём сервере, необходимо самостоятельно настроить следущее:

Эти пункты настраиваются по-разному, в зависимости от стека технологий и внутренних политик компании. Ниже в документе приводятся примеры наиболее частых вариантов настройки.

Структура папки серверного приложения YouGile

Внутри рабочей папки приложения yougile находятся:

Системные требования

Необходима машина с 64-битной операционной системой Windows или Linux. На сайте https://dist.yougile.com предложены сборки для наиболее распространённых версий linux и windows. В случае необходимости, отправив запрос в поддержку (support@yougile.com), можно получить сборку для более старых версий.

Минимальные требования по оперативной памяти: 500Мб плюс ещё по 500Мб на каждые 100 пользователей. То есть, например, если пользователей 500, то получается 500 + 500 * 5 = 3Гб оперативной памяти.

По процессору и IOPS жёсткого диска узкого места не возникает вплоть до 1000 пользователей. При бо́льшем планируемом количестве пользователей необходимо проконсультироваться с поддержкой YouGile.

Необходимое свободное место на диске зависит от того, какие файлы и как часто будут загружаться пользователями в системе. Для начала работы стоит выделить свободного места из расчёта 1Гб на каждые 10 пользователей, с возможностью дальнейшего увеличения этого лимита.

Установка

Необходимо скачать дистрибутив с сайта https://dist.yougile.com Для скачивания последней версии используйте следующие ссылки:

Распакуйте архив в удобное место на сервере — YouGile обращается в файловой системе только к содержимому этой папки.

Чтобы проверить работу приложения, запустите файл server (server.exe для Win) и зайдите в браузере по адресу http://localhost:8001 внутри машины (либо http://<ip машины>:8001 на компьютере из локальной сети).

Запуск, остановка. Настройка сервиса

Для Linux

YouGile можно запустить, выполнив из рабочей папки yougile файл server например, если yougile был установлен в /opt:

cd /opt/yougile ./server # запуск ^C # остановка

Но для нормальной работы рекомендуется настроить сервис. Для этого создайте файл yougile.service со следующим содержимым:

[Unit] Description=YouGile [Service] WorkingDirectory=/opt/yougile ExecStart=/opt/yougile/server [Install] WantedBy=multi-user.target

(в примере yougile установлен в /opt, замените на своё местоположение). Скопируйте этот файл в папку /etc/systemd/system/, затем выполните

systemctl daemon-reload systemctl enable yougile.service systemctl start yougile.service

После этого можно запускать yougile командой service yougile start и останавливать service yougile stop. Просматривать вывод yougile можно при помощи стандартного инструмента journalctl.

Для Windows

Запустить сервер YouGile можно, нажав на файл server.exe. Но при таком способе запуска, Windows иногда замораживает выполнение приложения. Поэтому предпочтительнее запускать приложение через cmd. Откройте терминал Windows cmd, перейдите в папку yougile и выполните server.exe. Наиболее удобный способ запуска и остановки YouGile — создание сервиса. Для этого можно воспользоваться WinSW (подробнее см. здесь).

Лицензия YouGile

Для коробочной версии предоставляется бесплатный 7-дневный период тестирования. Если у серверного приложения YouGile есть доступ в интернет, то при запуске YouGile можно в интерфейсе нажать на кнопку, которая установит Демо-лицензию YouGile, которая будет активна 7 дней. Также, демо-лицензию можно получить по запросу в поддержку, для этого необходимо прислать файл machine.key (он появляется после первого запуска).

Лицензия хранится в файле license.key и привязана к параметрам машины (модель процессора, кол-во ядер, к-во памяти и т.д.). Если вы приобрели лицензию и необходимо изменить параметры виртуальной машины, на которой работает YouGile (или перенести YouGile на другой сервер), то лицензию тоже надо перегенерировать. Это можно сделать, обратившись в поддержку и предоставив новый файл machine.key

Для организации отказоустойчивости или для создания архивной копии YouGile может потребоваться установить одну и ту же базу данных YouGile на несколько машин. Если у вас есть приобретённая лицензия YouGile, вы можете связаться с вашим персональным менеджером (или службой поддержки) по вопросу предоставления лицензии с поддержкой нескольких машин. Такая лицензия предоставляется бесплатно для команд с большим количеством сотрудников.

Настройка параметров YouGile, файл conf.json

В папке yougile находится файл conf.json — в нём находятся все настройки серверного приложения в формате JSON. Для правильной работы системы необходимо указать значение параметра mainPageUrl. mainPageUrl — это адрес, по которому YouGile будет доступен для пользователей, например "https://yougile.example.com"

После редактирования conf.json, чтобы изменения применились, необходимо перезапустить сервис YouGile.

При редактировании файла conf.json, важно не нарушить формат JSON, иначе, приложение YouGile выдаст ошибку при запуске и не запустится. Редактируйте поля по аналогии с тем, что уже есть в файле и обращайте внимание на запятые и кавычки (можно где-то забыть поставить или, наоборот, поставить лишнюю).

Весь список настроек, доступных в conf.json, большинство из них необязательны:

Имя Пример значения Описание
mainPageUrl "https://yougile.my.com" Обязательный параметр. Адрес, по которому YouGile доступен для пользователей. Используется для формирования ссылок на страницы системы, например, ссылка на регистрацию, которая отправляется на почту пользователя при его приглашении, или ссылка для восстановления пароля.
port 8001 Порт, по которому YouGile принимает запросы HTTP (некоторые значения портов могут требовать определённых прав при запуске YouGile в некоторых ОС)
smtp (см. ниже) Настройка подключения к почтовому серверу, см. ниже
emailFrom "\"Yougile\" <info@my.com>" Почтовый адрес, от лица которого будут приходить письма пользователей. Если адрес не соответствует аккаунту в настройках поля smtp, то многие почтовые серверы могут запретить отправку письма
dataUrl "https://yougile-data.my.com" Адрес, с которого нужно загружать файлы пользователей (которые хранятся в папке user-data/), если он совпадает с mainPageUrl, то его не нужно указывать
uploadFileLimit 50 Максимальный размер загружаемого пользователем файла в мегабайтах (по умолчанию 50)
disableInviteUsers true Если указано значение true, то пользователи не смогут приглашать новых пользователей в систему (нужно, например, при интеграции с ActiveDirectory)
disableEmailRecovery true Если true, то пользователи не смогут восстанавливать пароли
lang "ru" Язык системы по умолчанию. Если не указан, то язык определяется для каждого пользователя автоматически
multiCompany false Разрешает работу системы в режиме поддержки нескольких компаний (если false, то доступна только 1 основная компания)
allowAddCompanies true По умолчанию, все пользователи могут создавать новые компании. Если указано false, то пользователи не смогут создавать новые компании. Можно также вместо true или false, указать массив email-ов пользователей, которые смогут создавать компании, пример: ["user1@my.com", "user2@my.com"]
allowEnterWithoutCompany false Если пользователь удалён из всех компаний, то если этот параметр false, то пользователь не может войти в систему, если true, то пользователь может войти и при этом создаётся новая пустая компания для этого пользователя.
allowExtensions true Разрешить системе подключаться к серверу расширений YouGile. Для работы расширений необходимо, чтобы этот параметр был true, чтобы на сервере был доступ по https к адресу plugin.yougile.com и чтобы коробочная версия была доступна по определённому адресу из интернета. При этом будет возможна передача данных между коробочной версией и YouGile
allowMobileClients true Разрешить вход в систему с мобильного приложения. Можно указать true, false или массив email-ов пользователей, которым можно заходить через мобильное приложение.
rateLimiterOptions { "enabled": true, "countMultiplier": 1, "timeMultiplier": 1, "restApiCount": 30, "restApiInterval": 60000} Настройка ограничения количества запросов. Критичные http эндпоинты имеют ограничение на количество запросов к ним (например, вход в систему, регистрация и т.д.), базовое ограничение по запросам для одного ip – это 5 запросов в минуту, с помощью этой настройки можно изменить или отключить это поведение. Ограничения запросов к REST API настраиваются отдельно, параметрами restApiCount (количество разрешённых запросов) и restApiInterval – интервал времени в миллисекундах
init (см. ниже) Настройка запуска серверных скриптов для интеграции (например, для ActiveDirectory). Примеры см. ниже
logStreams [{"level": "info", "stream": "stdout"}] Настройка вывода логов сервера. Пример: [{"level": "info", "stream": "stdout"}, {"level": "error", "path": "/var/tmp/yougile-error.log"}]. Подробнее см. настройки bunyan
keyExpirationTimeout 259200000 Время в миллисекундах в течение которого действует ключ сессии пользователя
keyExpireOnLogout false Если это значение установлено в true, то при выходе из аккаунта пользователя, ключ сессии инвалидируется
eventLogPath "./event.log" Путь к файлу, в который пишется лог событий безопасности. Если параметр не указан, то лог не пишется
eventLogDailyRotationLimit 30 Если этот параметр указан, то лог событий безопасности ротируется раз в день и число в этом параметре определяет количество файлов дней лога, которые хранятся

Подключение почты

Настройки сервера хранятся в файле conf.json. Все настройки по умолчанию уже прописаны в этом файле после установки, чтобы поменять настройки – отредактируйте этот файл и перезапустите сервер. Для того, чтобы сервер мог посылать email-ы (например, при добавлении новых пользователей) необходимо прописать smtp настройки в файле conf.json.

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

"smtp": { "host": "smtp.example.com", "secure": true, "port": 465, "auth": { "user": "me@some.com", "pass": "******" }

Следует обратить внимание на то, чтобы в поле mainPageUrl был корректно указан адрес сервера и в поле emailFrom был правильный адрес отправителя.

Пример настройки почты для Exchange:

{ "host": "exchange.mycompany.com", "secureConnection": false, "port": 587, "tls": { "cipher": "SSLv3", "rejectUnauthorized": false }, "auth": { "user": "ourdomain\\someuser", "pass": "******" } }

Настройка http-фронтенда, HTTPS

Помимо непосредственной пользы от HTTPS, есть ещё ряд ограничений, с которыми можно столкнуться если не настроить HTTPS и предлагать пользователям подключаться через HTTP без шифрования:

Чтобы включить https, необходимо поставить между YouGile и клиентами промежуточный http-сервер (nginx, IIS, Apache, …) и настроить в нём подключение через https.

Пример конфигурации для nginx (nginx.conf):

http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 120; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; gzip on; server { listen 80; server_name <YOUR_SERVER_NAME>; return 301 https://$server_name$request_uri; } server { listen 443 ssl http2; ssl on; server_name <YOUR_SERVER_NAME>; ssl_protocols TLSv1.2; ssl_certificate <PATH_TO_CERT>; ssl_certificate_key <PATH_TO_KEY>; ssl_dhparam <PATH_TO_DHPARAM>; ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA; ssl_prefer_server_ciphers on; ssl_session_timeout 10m; ssl_session_cache shared:SSL:10m; client_max_body_size 50M; client_body_buffer_size 50M; gzip on; gzip_http_version 1.1; gzip_comp_level 5; gzip_min_length 4096; gzip_proxied any; gzip_types text/plain text/xml text/css application/x-javascript application/javascript application/json application/x-font-ttf; gzip_vary on; add_header Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" always; add_header X-Frame-Options SAMEORIGIN; add_header X-XSS-Protection "1; mode=block"; add_header X-Content-Type-Options nosniff; location ~ /\. { deny all; } location / { proxy_pass http://localhost:8001; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $http_host; proxy_read_timeout 1h; proxy_connect_timeout 1h; proxy_send_timeout 1h; proxy_pass_header Server; proxy_max_temp_file_size 0; } } }

Проверка работы HTTPS

Иногда бывает так, что сертификат для HTTPS настроен неправильно, из-за чего некоторые пользователи не могут войти в мобильное приложение YouGile. При этом, в браузере HTTPS работает нормально. Это происходит из-за того, что сервер присылает неполный сертификат. Проверить это можно, выполнив в командной строке:

openssl s_client -connect <домен>:<порт>

здесь домен — это домен, с которого доступен YouGile (напр. yougile.mycompany.com), порт, как правило, это 443.

Если есть какие-то ошибки с сертификатом, то они будут написаны в выводе этой команды, например, может присутствовать такая строка:

Verify return code: 21 (unable to verify the first certificate)

Если коробка YouGile доступна в интернете, то можно также воспользоваться сервисами по проверке правильности настройки https, вот пример таких сервисов:

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

Обновления

Если есть доступ в интернет

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

./server task show-updates

Для windows:

server.exe task show-updates

Чтобы установить обновление необходимо сделать следующее:

  1. сделать резервную копию yougile (или убедиться, что она есть)
  2. остановить сервис yougile
  3. выполнить в папке yougile: ./server task update latest (на Windows: server.exe task update latest)
  4. запустить сервис yougile

Эту процедуру можно выполнять автоматически раз в некоторое время.

Без доступа в интернет

Проверить наличие обновлений можно на сайте https://dist.yougile.com.

Чтобы установить обновление, скачайте архив для нужной операционной системы, затем внутри папки yougile создайте папку tmp (если она уже есть, то очистите её содержимое). Распакуйте архив в папку tmp, у вас должно получиться, что в папке yougile содержится папка tmp, в которой содержится папка yougile (из архива) и в ней уже разные файлы. Скорируйте файл tmp/yougile/tasks/lib/install.js в папку tasks/ внутри основной папки yougile (не той, что из архива, а той, где установлена система). И затем, внутри папки, где установлена система выполните команду:

./server task install

для Windows:

server.exe task install

Вот полный пример действий по обновлению для Linux:

cd /opt/yougile rm -r tmp mkdir tmp cd tmp/ # скачать нужный файл yougile.tar.gz из dist.yougile.com и поместить в tmp/ # поскольку нет доступа в интернет, это делается вручную tar -xf yougile.tar.gz rm yougile.tar.gz cd .. cp tmp/yougile/tasks/lib/install.js tasks/ ./server task install

здесь предполагается, что YouGile установлен в /opt/yougile.

Резервное копирование

Резервное копирование (бэкап) в коробочной версии осуществляется методами, принятыми в компании (например, с помощью инструментов rsync, bacula и т.д.). Необходимо копировать папку с приложением yougile (ту папку, которая разархивировывается при установке коробки).

В папке yougile ценными являются:

Можно бэкапить отдельно эти файлы и папки, либо всю папку yougile целиком.

Как часто создавать резервную копию и сколько хранить по времени — вы сами решаете для себя. Резервная копия даёт возможность в случае необходимости откатиться назад на состояние, где всё было нормально, и в этом случае вы потеряете только ту часть работы, которая была произведена после создания резервной копии.

Мы рекомендуем делать бэкап несколько раз в течение рабочего дня, например, в 8, 10, 12, 14, 16, 18, 21 часы. Это гарантирует, что вы не потеряете более 2 часов работы в случае экстренной ситуации.

Отказоустойчивость

Можно организовать высокий уровень отказоустойчивости коробочной версии YouGile. Для этого необходимо выполнить следующий набор рекомендаций.

Настройка доступной памяти

По умолчанию сервис YouGile использует только ограниченных объём доступной памяти на машине (приблизительно 1Гб). Чтобы YouGile использовал бОльшее количество памяти, доступное на машине, необходимо запускать приложение с переменной окружения NODE_OPTIONS=--max-old-space-size=<память в Мб> (при использовании systemd, поменять поле Environment в файл сервиса systemd), либо задать эту переменную в переменных окружения пользователя, под которым запускается YouGile. Количество памяти должно вычисляться из расчёта: вся память доступная на машине минус 300Мб. Пример файла yougile.service для systemd:

[Unit] Description=yougile [Service] WorkingDirectory=/opt/yougile ExecStart=/opt/yougile/server Environment="NODE_OPTIONS=--max-old-space-size=5000" LimitNOFILE=500000 LimitNPROC=500000 [Install] WantedBy=multi-user.target

Бэкапы

Необходимо убедиться, что резервное копирование удовлетворяет требованиям по отказоустойчивости:

Резервная машина

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

При переключении в аварийный режим (если основная машина с YouGile доступна, необходимо остановить сервис, после этого выполнить обновление бэкапа). Последний бэкап развернуть на резервной машине и запустить сервис. Публичный ip основной машины должен быть передан резервной машине (использовать DNS для переключения нельзя).

Для переключения в аварийный режим можно настроить автоматику, но переключать обратно в штатный режим нужно только вручную (решение о переключении обратно в штатный режим может принять ответственный сотрудник после анализа ситуации и проверки работоспособности основной машины).

Алертирование

Чтобы можно было следить за доступностью YouGile для пользователей и реагировать на сбои (переключать на резервную машину), необходимо реализовать событийный мониторинг по доступности YouGile — http запрос к адресу /data/check должен выдавать status 200. По этому алерту можно судить о доступности системы. Нужно сделать, чтобы по срабатыванию этого алерта происходило аварийное реагирование (ответственные сотрудники должны получать уведомление, например sms, звонок или сообщение в telegram).

Необходимо также сделать событийное алертирование по использованию памяти – оно должно срабатывать, если на машине осталось менее 1 Гб памяти. Это событие указывает на необходимость увеличения количества памяти на машине, даже если затем ситуация исправляется и потребление памяти приходит в норму. Для увеличения памяти создаётся новая машина, для которой отдельно запрашивается лицензионный ключ в поддержке (или используется специальный ключ с поддержкой нескольких машин) и после проверки работоспособности машины, производится переключение и удаление старой машины.

Логирование

Настроить систему логирования для исследования возможных проблем. Необходимо убедиться, что системные логи и логи YouGile сохраняются после перезагрузки машины. Настроить политику ротации этих логов (например, оставлять логи только за последние 30 дней – в зависимости от количества доступного места на диске).

Количественный мониторинг

Убедиться, что есть количественный мониторинг на основной и резервной машине YouGile и на соответствующих хост-машинах. Раз в неделю необходимо проверять потребление ресурсов системой (процессор, память, диск, сеть) и, при необходимости, планировать увеличение ресурсов, либо обращаться за консультацией в поддержку YouGile.

Производительность

Скорость работы YouGile сильнее всего зависит от количества задач и объёма данных в текущей открытой компании. Эту информацию по компаниям можно посмотреть с помощью команды db-stats (см. раздел Специальные команды YouGile).

YouGile работает быстро, если в каждой из компаний количество задач не превышает 30 тыс. и объём данных не превышает 80Мб (в объём данных не входят заугружаемые файлы, только сами данные задач). В промежутке от 30 тыс. до 50 тыс. задач (и от 80Мб до 120Мб данных) система может начать работать медленнее, а при бОльшем к-ве данных скорость работы может уже быть недопустимой для работы пользователей в системе.

Есть 2 способа контроля производительности в больших командах:

Разбиение данных на несколько компаний

В коробочной версии YouGile можно создавать неограниченное количество “компаний”. Каждый пользователь может быть добавлен в несколько компаний одновременно. Если в команде пользуются YouGile более 1000 человек, разбиение на “компании” обязательно для обеспечения долговременного контроля производительности.

Чтобы можно было создавать новые компании необходимо установить поля multiCompany и allowAddCompanies в файле conf.json (см. раздел Настройка параметров YouGile, файл conf.json)

Удаление старых данных

Чтобы контролировать количество данных в компании, можно периодически удалять старые данные. Если удалить задачу в системе через интерфейс, она не будет полностью удалена (это сделано для возможности восстановления удалённых задач). Удалённая задача влияет на производительность системы (хотя и меньше), поэтому удалённые задачи необходимо чистить при помощи команды clean-database (см. раздел Специальные команды YouGile).

Чтобы массово удалить ненужные задачи, можно воспользоваться функционалом сводок. Для этого необходимо в интерфейсе системы создать сводку, в которой будут по критериям выфильтрованы те задачи, которые необходимо удалить. Затем в окне настройки сводки нужно зажать клавиши Alt и Shift на клавиатуре и, не отпуская этих клавиш, кликнуть на Удалить сводку – появится предупреждение об удалении всех задач в сводке и можно будет согласиться и массово удалить все ненужные задачи. Эта функция доступна, начиная с версии коробки 1.56.

Если хочется иметь доступ к старым задачам, можно организовать архивную инсталляцию YouGile, где по отдельному адресу будет доступна система со старой версией данных. Для организации такого архива, можно бесплатно получить ключ лицензии в поддержке YouGile (или лицензию с поддержкой нескольких машин).

Таким образом, регулярная процедура очистки старых данных может выглядеть так:

Сбор cpuprofile

В некоторых случаях техподдержка YouGile может запросить профиль нагрузки процессора. Это помогает найти причину проблем с производительностью в конкретном случае и предложить решение проблемы. Для того, чтобы собрать профиль нагрузки (cpuprofile), необходимо:

  1. В conf.json добавить поле manageKey и поместить туда секретный пароль, который будет использоваться для запроса на сбор профайла, пример:
... "manageKey": "some password", ...
  1. После этого нужно перезапустить сервер, чтобы настройка применилась.

  2. Собирать профайл нужно в момент, когда наблюдаются проблемы с работой системы. Нужно дождаться, когда проблема начнёт проявляться

  3. После этого необходимо выполнить curl запрос на машине, где работает yougile:

manageKey="some password" curl -X POST http://localhost:8001/data/profiler/run -H "Content-Type: application/json" -d "{\"key\": \"$manageKey\", \"seconds\": 100}"
  1. Запрос будет выполняться 110-200 секунд и после его выполнения в папке yougile/ появится файл profiler-...cpuprofile

Запуск YouGile в режиме кластера

В некоторых случаях может потребоваться запустить сервис YouGile в режиме кластера из нескольких процессов на одной машине. Поддержка YouGile может рекомендовать этот вариант если нагрузка на сервис потребует распределения по ядрам. В обычном режиме YouGile использует только одно ядро процессора. Здесь далее будет разобрана настройка варианта разделения на 3 процесса на одной машине. Также возможно разделение на несколько машин и на большее количество процессов, эти варианты может предложить поддержка YouGile при необходимости.

Настройка 3-х процессов на одной машине

Необходимо добавить в папку yougile/ дополнительные конфигурационные файлы:

conf-account.json:

{ "include": "./conf.json", "cluster": { "nodeUrl": "http://localhost:8001", "cookie": "<secret cookie>", "role": {"type": "account", "features": {"userEvents": false}}, "allowedNodes": [ "http://localhost:8001", "http://localhost:8002", "http://localhost:8003" ] }, "port": 8001 }

conf-company.json:

{ "include": "./conf.json", "cluster": { "nodeUrl": "http://localhost:8002", "bootstrapUrl": "http://localhost:8001", "cookie": "<secret cookie>", "allowedNodes": [ "http://localhost:8001", "http://localhost:8002", "http://localhost:8003" ], "role": {"type": "company"}, "allowedCompanies": {"include": ["part:1/1"]} }, "port": 8002 }

conf-user-events.json:

{ "include": "./conf.json", "cluster": { "nodeUrl": "http://localhost:8003", "bootstrapUrl": "http://localhost:8001", "cookie": "<secret cookie>", "allowedNodes": [ "http://localhost:8001", "http://localhost:8002", "http://localhost:8003" ], "role": {"type": "user-events"} }, "port": 8003 }

Здесь везде <secret cookie> – это сгенерированная случайная строка, которая работает как пароль для опознавания нод кластера друг другом. Эта строка должна быть одна и та же во всех конфигурационных файлах.

Далее необходимо создать 3 процесса: yougile-account, yougile-company и yougile-user-events, каждый из которых запускает сервис с соответствующим конфигурационным файлом. Пример для systemd:

yougile-account.service

[Unit] Description=yougile-account [Service] WorkingDirectory=/opt/yougile ExecStart=/opt/yougile/server --conf conf-account.json Environment="NODE_ENV=production" Environment="NODE_OPTIONS=--max-old-space-size=10000" Environment="HOME=/root" LimitNOFILE=500000 LimitNPROC=500000 [Install] WantedBy=multi-user.target

yougile-company.service

[Unit] Description=yougile-company [Service] WorkingDirectory=/opt/yougile ExecStart=/opt/yougile/server --conf conf-company.json Environment="NODE_ENV=production" Environment="NODE_OPTIONS=--max-old-space-size=10000" Environment="HOME=/root" LimitNOFILE=500000 LimitNPROC=500000 [Install] WantedBy=multi-user.target

yougile-user-events.service

[Unit] Description=yougile-user-events [Service] WorkingDirectory=/opt/yougile ExecStart=/opt/yougile/server --conf conf-user-events.json Environment="NODE_ENV=production" Environment="NODE_OPTIONS=--max-old-space-size=10000" Environment="HOME=/root" LimitNOFILE=500000 LimitNPROC=500000 [Install] WantedBy=multi-user.target

В этом примере каждому процессу выделяется по 10Гб оперативной памяти (max-old-space-size) и указывается домашняя папка /root. Замените эти параметры, при необходимости. См. также Запуск, остановка. Настройка сервиса

Необходимо убедиться, что обычный процесс YouGile, который не был настроен на кластеризацию, остановлен. После этого запустить эти 3 процесса и проверить, что система работает в браузере или в десктоп-приложении.

В YouGile можно управлять доступом пользователей в систему через ActiveDirectory.

В AD нужно создать группу, которая будет отвечать за наличие доступа пользователя в YouGile. Все пользователи, которые будут добавлены в эту группу, должны иметь уникальное поле mail в AD — это поле будет служить логином в YouGile, а пароль в AD будет служить паролем в Yougile.

В файл conf.json необходимо добавить настройки по следующему примеру:

... "init": { "scripts": ["auth/auth-sync-ldap.js", "auth/check-sync.js"], "auth": "auth/auth-ldap.js" }, "activeDirectory": { "url": "ldaps://mycompany.com", "baseDN": "dc=mycompany,dc=com", "username": "yougile_ad", "password": "***" }, "activeDirectoryOpts": { "includeDeleted": false, "filter": "&(objectClass=user)(mail=*)(memberOf=CN=yougile_user,OU=app,DC=mycompany,DC=com)" }, ...

После перезапуска сервиса yougile, в систему смогут входить только те пользователи, которые подходят под условие, указанное в поле filter (в данном примере это пользователи из группы yougile_user).

Если в ActiveDirectory часть пользователей убрать из группы, которая указана в поле filter, то они удалятся из YouGile, но если таких пользователей будет больше 10, то удаление не произойдёт. Это сделано для защиты от сбоев в работе ActiveDirectory. Чтобы увеличить это ограничение, можно установить в conf.json парамерт activeDirectoryMaxDelete, пример:

... "activeDirectoryMaxDelete": 20, ...

Также можно подлключить одновременно несколько серверов ActiveDirectory, в этом случае, в YouGile будут добавляться все пользователи, которые есть во всех указанных серверах. Для этого в полях activeDirectory и activeDirectoryOpts необходимо указать массив настроек. Пример:

... "init": { "scripts": ["auth/auth-sync-ldap.js", "auth/check-sync.js"], "auth": "auth/auth-ldap.js" }, "activeDirectory": [ { "url": "ldaps://domain1.com", "baseDN": "dc=domain1,dc=com", "username": "yougile_ad1", "password": "***" }, { "url": "ldaps://domain2.com", "baseDN": "dc=domain2,dc=com", "username": "yougile_ad2", "password": "***" } ], "activeDirectoryOpts": [ { "includeDeleted": false, "filter": "&(objectClass=user)(mail=*)(memberOf=CN=yougile_user,OU=app,DC=domain1,DC=com)" }, { "includeDeleted": false, "filter": "&(objectClass=user)(mail=*)(memberOf=CN=yougile,OU=app,DC=domain2,DC=com)" } ], ...

При этом команда check-ldap не будет работать, чтобы проверять настройки, нужно оставить в conf.json только одно подключение к ActiveDirectory (без массива) и его проверять через check-ldap.

Управление списком пользователей через файл

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

Для этого добавьте в файл conf.json следующее:

"init": { "scripts": ["auth/auth-sync.js", "auth/check-sync.js"], "auth": "auth/auth.js" }

Создайте в папке database файл users.csv, где каждая строка – это email, имя и пароль пользователя через запятую. Пример содержимого users.csv:

admin@mycompany.com,Admin,pass1 some-user@mycompany.com,Some user,pass2

Перезапустите YouGile, после этого вы можете редактировать файл users.csv и изменения будут автоматически применяться без необходимости перезапуска YouGile.

Специальные команды YouGile

В YouGile есть набор команд, которые помогают выполнять часто встречающиеся задачи администрирования. Чтобы посмотреть список команд, в терминале, в папке yougile наберите:

./server task

для Windows:

server.exe task

Чтобы выполнить команду, необходимо в терминале перейти в папку yougile и выполнить:

./server task <название команды> [параметры]

для Windows:

server.exe task <название команды> [параметры]

Доступные команды: