Процесс установки Sherpa Orchestrator (локальная версия)#

Подготовка сервера#

Добавление пользователя в группу sudo#

# Войдите под root пользователем
su

# Добавьте пользователя в группу sudo
/sbin/usermod -aG sudo <userName>

# Перезагрузите систему для применения изменений
exit
💡 Комментарии к добавлению пользователя в sudo

/sbin/usermod -aG sudo - добавляет пользователя в группу sudo

  • -a - append (добавляет к существующим группам)
  • -G sudo - добавляет в группу sudo
  • <userName> - замените на имя вашего пользователя

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

Настройка часового пояса#

# Установите часовой пояс UTC
sudo timedatectl set-timezone UTC

# Проверьте настройку
timedatectl
💡 Комментарии к настройке часового пояса

sudo timedatectl set-timezone UTC - устанавливает часовой пояс UTC timedatectl - показывает текущие настройки времени и даты

Рекомендуется использовать UTC для серверных приложений.

Обновление системы#

# Обновите список пакетов
sudo apt -y update

# Установите инструменты для работы с репозиториями
sudo apt -y install software-properties-common gnupg2

# Обновите систему
sudo apt -y upgrade
💡 Комментарии к обновлению системы

sudo apt -y update - обновляет список доступных пакетов из репозиториев sudo apt -y install software-properties-common gnupg2 - устанавливает инструменты для работы с репозиториями

  • software-properties-common - утилиты для управления репозиториями
  • gnupg2 - инструмент для работы с GPG ключами

sudo apt -y upgrade - обновляет все установленные пакеты до последних версий

  • -y - автоматическое подтверждение установки

Распаковка архива с обновлением#

На этом этапе вы распакуете архив с файлами Sherpa Orchestrator и подготовите систему к установке.

# Перейдите в директорию с файлами
cd /opt

# Найдите и распакуйте архив обновления (автоматически выбирается самая свежая версия)
tar -xvzf "$(ls local_orchestrator_client_files_*.tgz | sort -V | tail -n 1)"

# Перейдите в директорию с распакованными файлами
cd SherpaOrchestrator
💡 Комментарии к распаковке архива

cd /opt - переходит в директорию с файлами установки tar -xvzf "$(ls local_orchestrator_client_files_*.tgz | sort -V | tail -n 1)" - распаковывает архив с обновлением

  • tar -xvzf - распаковывает архив с подробным выводом
  • ls local_orchestrator_client_files_*.tgz - находит все файлы архивов обновлений
  • sort -V - сортирует версии естественно (1.0 < 1.1 < 1.10)
  • tail -n 1 - выбирает самый свежий файл

cd SherpaOrchestrator - переходит в директорию с распакованными файлами

Ожидаемый результат: Будут распакованы необходимые файлы и директории для установки Sherpa Orchestrator.

Подготовка скриптов к выполнению#

# Перейдите в директорию sh_scripts
cd sh_scripts/

# Сделайте все скрипты исполняемыми
chmod +x *.sh

# Вернитесь в корневую директорию проекта
cd ..
💡 Комментарии к подготовке скриптов

cd sh_scripts/ - переходит в директорию со скриптами установки

*chmod +x .sh - устанавливает права исполнения для всех shell-скриптов

  • chmod +x - добавляет право исполнения
  • *.sh - все файлы с расширением .sh

cd .. - возвращает в корневую директорию проекта

Инициализация конфигурации#

# Выполните инициализацию настроек
sudo ./sh_scripts/create_config.sh
💡 Комментарии к инициализации конфигурации

sudo ./sh_scripts/create_config.sh - запускает скрипт инициализации базовой конфигурации

  • Создает необходимые директории
  • Настраивает базовые параметры системы
  • Подготавливает структуру для дальнейшей настройки

Установка СУБД MariaDB#

# Добавьте репозиторий MariaDB
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xF1656F24C74CD1D8
sudo add-apt-repository "deb [arch=amd64] http://mariadb.mirror.liquidtelecom.com/repo/10.5/debian $(lsb_release -cs) main"

# Обновите список пакетов
sudo apt update

# Установите MariaDB
sudo apt install mariadb-server mariadb-client
💡 Комментарии к установке MariaDB

Добавление репозитория:

  • sudo apt-key adv --recv-keys - добавляет GPG ключ репозитория
  • sudo add-apt-repository - добавляет репозиторий MariaDB
  • $(lsb_release -cs) - автоматически определяет кодовое имя дистрибутива

Установка пакетов:

  • mariadb-server - сервер базы данных
  • mariadb-client - клиент для подключения к базе данных

Базовая настройка безопасности MySQL/MariaDB#

# Запустите скрипт настройки безопасности
sudo mysql_secure_installation

Вопросы и варианты ответов настройки безопасности:

Switch to unix_socket authentication [Y/n] y
Change the root password? [Y/n] y
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
💡 Комментарии к настройке безопасности

mysql_secure_installation - интерактивный скрипт для базовой настройки безопасности MySQL/MariaDB

Рекомендуемые ответы:

  • Switch to unix_socket authentication - да (y) - использовать аутентификацию через unix socket
  • Change the root password - да (y) - установить пароль для root пользователя
  • Remove anonymous users - да (y) - удалить анонимных пользователей
  • Disallow root login remotely - нет (n) - разрешить root подключаться удаленно
  • Remove test database - да (y) - удалить тестовую базу данных
  • Reload privilege tables - да (y) - перезагрузить таблицы привилегий

Настройка базы данных и пользователя#

# Подключитесь к MySQL как root
mysql -u root -p

# Выполните следующие команды в MySQL shell:
-- Добавление пользователя БД (замените пароль на надежный)
GRANT ALL ON orchestrator.* TO 'orchestrator'@'localhost' IDENTIFIED BY 'mD2vjt(HqZKW' WITH GRANT OPTION;

-- Перезагрузка привилегий
FLUSH PRIVILEGES;

-- Выбор базы данных
USE orchestrator;

-- Обновление записи аккаунта
UPDATE `accounts` SET `parent_account_id` = '1' WHERE `accounts`.`id` = 1;

-- Выход из MySQL
exit;
💡 Комментарии к настройке базы данных

GRANT ALL ON orchestrator. TO 'orchestrator'@'localhost'...* - создает пользователя orchestrator с полными правами на базу orchestrator

  • 'orchestrator'@'localhost' - пользователь может подключаться только с localhost
  • WITH GRANT OPTION - пользователь может давать права другим пользователям

FLUSH PRIVILEGES - перезагружает таблицы привилегий

UPDATE accounts... - устанавливает parent_account_id для системного аккаунта

Важно: Замените пароль 'mD2vjt(HqZKW' на надежный уникальный пароль!

Установка веб-сервера и PHP#

# Установите необходимые пакеты
sudo apt -y install lsb-release apt-transport-https ca-certificates curl

# Добавьте репозиторий PHP
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php.list

# Обновите список пакетов
sudo apt-get update

# Установите Nginx и PHP 8.5
sudo apt-get install -y nginx php8.5 php8.5-cli php8.5-fpm php8.5-opcache php8.5-curl php8.5-mbstring php8.5-zip php8.5-xml php8.5-mysql php8.5-pdo-mysql php8.5-pgsql
💡 Комментарии к установке веб-сервера

Добавление репозитория PHP:

  • Добавляется GPG ключ репозитория PHP от sury.org
  • Добавляется репозиторий для PHP 8.5

Установка пакетов:

  • nginx - веб-сервер
  • php8.5 - PHP интерпретатор
  • php8.5-fpm - FastCGI Process Manager для PHP
  • php8.5-* - расширения PHP для различных функций

Настройка PHP#

# Откройте файл конфигурации PHP-FPM
sudo nano /etc/php/8.5/fpm/php.ini

# Найдите и измените следующие параметры:
upload_max_filesize = 100M
post_max_size = 100M

# Сохраните файл и перезапустите PHP-FPM
sudo service php8.5-fpm restart
💡 Комментарии к настройке PHP

upload_max_filesize = 100M - максимальный размер загружаемого файла post_max_size = 100M - максимальный размер POST данных

sudo service php8.5-fpm restart - перезапускает PHP-FPM для применения изменений

Настройка Nginx#

# Откройте файл конфигурации Nginx
sudo nano /etc/nginx/nginx.conf

# Найдите секцию http и добавьте:
client_max_body_size 100m;

# Сохраните файл
💡 Комментарии к настройке Nginx

client_max_body_size 100m - устанавливает максимальный размер тела запроса клиента

  • Должно быть в секции http { ... }
  • Значение соответствует настройкам PHP

Настройка домена и конфигурации Sherpa#

# Откройте файл конфигурации домена
sudo nano /opt/SherpaOrchestrator/backend/config/domain.conf

# Замените "orchestrator.sherparpa.ru" на ваш домен или IP адрес (всего 4 замены)

# Определите путь к PHP-FPM socket в зависимости от ОС:
# Для Ubuntu 18.04:
# fastcgi_pass unix:/var/run/php/php8.5-fpm.sock;

# Для Debian:
fastcgi_pass unix:/run/php/php8.5-fpm.sock;

# Для CentOS 8:
# fastcgi_pass unix:/run/php-fpm/www.sock;

# Для CentOS 7:
# fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
💡 Комментарии к настройке домена

Замена домена: Необходимо заменить все вхождения "orchestrator.sherparpa.ru" на ваш реальный домен или IP адрес

Настройка PHP-FPM socket: Путь зависит от дистрибутива Linux:

  • Debian/Ubuntu обычно: /run/php/php8.5-fpm.sock
  • CentOS: /run/php-fpm/www.sock

Важно: Если путь неправильный, проверьте логи Nginx: /var/log/nginx/error.log

Настройка SSL-сертификатов#

# Скопируйте SSL-сертификаты в директорию конфигурации
# Замените пути на реальные пути к вашим сертификатам
sudo cp /path/to/your/certificate.crt /opt/SherpaOrchestrator/backend/config/certs/orchestrator.crt
sudo cp /path/to/your/private.key /opt/SherpaOrchestrator/backend/config/certs/orchestrator.key
💡 Комментарии к SSL-сертификатам

Требования к сертификатам:

  • Сертификат должен быть переименован в orchestrator.crt
  • Приватный ключ должен быть переименован в orchestrator.key
  • Форматы: .crt/.pem для сертификата, .key для ключа

Получение сертификатов:

  • Обратитесь к системному администратору за корпоративными сертификатами
  • Используйте Let's Encrypt для бесплатных сертификатов
  • Для тестирования можно создать самоподписные сертификаты

Настройка конфигурации приложения#

# Откройте файл конфигурации приложения
sudo nano /opt/SherpaOrchestrator/backend/config/config.ini

# Настройте параметры подключения к базе данных:
database_host=127.0.0.1
database_port=3306
database_user=orchestrator
database_password="mD2vjt(HqZKW"
database_dbname=orchestrator
💡 Комментарии к конфигурации приложения

Параметры базы данных:

  • database_host - адрес сервера базы данных (обычно 127.0.0.1 для локальной установки)
  • database_port - порт MySQL/MariaDB (по умолчанию 3306)
  • database_user - пользователь базы данных (orchestrator)
  • database_password - пароль пользователя (должен совпадать с созданным ранее)
  • database_dbname - имя базы данных (orchestrator)

Важно: Пароль должен точно совпадать с паролем, установленным при создании пользователя БД

Настройка phinx.php (миграции БД)#

Файл backend/config/phinx.php используется Phinx для выполнения миграций. Пароль в нём должен совпадать с паролем БД из config.ini:

sudo nano /opt/SherpaOrchestrator/backend/config/phinx.php

В секции environments в блоке используемой БД (например, orchestrator или mysql) параметр 'pass' должен совпадать с database_password из config.ini. Иначе миграции при установке или обновлении завершатся ошибкой.

Активация конфигурации Nginx#

# Скопируйте конфигурацию в sites-available
sudo cp /opt/SherpaOrchestrator/backend/config/domain.conf /etc/nginx/sites-available/default

# Перезапустите Nginx
sudo systemctl restart nginx
💡 Комментарии к активации Nginx

sudo cp ... /etc/nginx/sites-available/default - копирует конфигурацию сайта в активные конфигурации Nginx

sudo systemctl restart nginx - перезапускает Nginx для применения новой конфигурации

Установка разрешений#

# Установите правильные разрешения и владельца
sudo chown -R www-data:www-data /opt/SherpaOrchestrator
sudo chmod -R 775 /opt/SherpaOrchestrator
💡 Комментарии к установке разрешений

sudo chown -R www-data:www-data /opt/SherpaOrchestrator - устанавливает www-data как владельца файлов

  • www-data - пользователь веб-сервера Nginx/PHP-FPM
  • -R - рекурсивно для всех файлов и директорий

sudo chmod -R 775 /opt/SherpaOrchestrator - устанавливает разрешения на файлы

  • 775 - владелец и группа могут читать/писать/исполнять, остальные только читать/исполнять

Создание архивной базы данных#

-- Подключитесь к MySQL
mysql -u root -p

-- Создайте архивную базу данных
CREATE DATABASE IF NOT EXISTS orchestrator_archive CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- Выход
exit;
💡 Комментарии к архивной базе данных

CREATE DATABASE IF NOT EXISTS orchestrator_archive - создает архивную базу данных

  • IF NOT EXISTS - создает только если не существует
  • CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci - устанавливает кодировку UTF-8 с поддержкой Unicode

Обновление структуры базы данных#

# Перейдите в директорию приложения
cd /opt/SherpaOrchestrator

# Проверьте настройки подключения к БД в файле phinx.php
sudo nano backend/config/phinx.php

# Выполните обновление базы данных
sudo ./sh_scripts/migrate.sh

Ожидаемый результат после успешного обновления:

Phinx by CakePHP - https://phinx.org.

using config file ./backend/config/phinx.php
using config parser php
using migration paths
using seed paths
warning no environment specified, defaulting to: orchestrator
using adapter mysql
using database orchestrator

== 20241201120000 CreateInitialSchema: migrated 0.0123s ==
== 20241201120000 CreateInitialSchema: migrated 0.0123s ==

All Done. Took 0.0345s
💡 Комментарии к обновлению базы данных

Проверка phinx.php:

'environments' => [
    'orchestrator' => [
        'adapter' => 'mysql',
        'host' => 'localhost',
        'name' => 'orchestrator',
        'user' => 'orchestrator',
        'pass' => 'mD2vjt(HqZKW',
        // ...
    ],
],

sudo ./migrate.sh - запускает миграции базы данных через Phinx

  • Обновляет структуру таблиц
  • Добавляет необходимые индексы
  • Создает триггеры и процедуры

Настройка CRON задач#

# Откройте редактор CRON
sudo crontab -e

# Добавьте строку для запуска планировщика задач:
* * * * * php /opt/SherpaOrchestrator/backend/app/scheduleCronRunner.php

# Сохраните и выйдите из редактора
💡 Комментарии к настройке CRON

sudo crontab -e - открывает редактор CRON для root пользователя

  • * * * * * - выполняется каждую минуту
  • php /opt/SherpaOrchestrator/backend/app/scheduleCronRunner.php - запускает планировщик задач Sherpa

Планировщик задач:

  • Управляет расписанием выполнения задач
  • Обрабатывает отложенные задания
  • Выполняет автоматическую очистку

Установка Node.js и PM2#

# Установите Node.js 22.x
sudo curl -sL https://deb.nodesource.com/setup_22.x | bash -
sudo apt-get install -y nodejs

# Обновите npm
sudo npm install -g npm@latest

# Установите PM2
sudo npm install -g pm2
💡 Комментарии к установке Node.js и PM2

curl -sL https://deb.nodesource.com/setup\_22.x | bash - - добавляет репозиторий Node.js

  • -sL - silent и follow redirects
  • setup_22.x - скрипт для Node.js версии 22.x

sudo apt-get install -y nodejs - устанавливает Node.js

sudo npm install -g pm2 - устанавливает PM2 глобально

  • PM2 - менеджер процессов для Node.js приложений
  • Автоматический перезапуск приложений
  • Управление логами и мониторинг

Настройка WebSocket сервиса#

# Перейдите в директорию websocket сервиса
cd /opt/SherpaOrchestrator/backend/app/websocket/

# Установите зависимости
sudo npm install

# Запустите сервис через PM2
sudo pm2 start index.js --watch --ignore-watch="node_modules" --name "Websockets"

# Настройте автозапуск PM2
sudo pm2 startup

# Сохраните конфигурацию PM2
sudo pm2 save
💡 Комментарии к настройке WebSocket

sudo npm install - устанавливает зависимости Node.js из package.json

sudo pm2 start index.js --watch --ignore-watch="node_modules" --name "Websockets"

  • --watch - перезапуск при изменении файлов
  • --ignore-watch="node_modules" - игнорировать изменения в node_modules
  • --name "Websockets" - имя процесса в PM2

sudo pm2 startup - настраивает автозапуск PM2 при загрузке системы sudo pm2 save - сохраняет текущую конфигурацию процессов

Настройка доменного имени (опционально)#

Если вам достаточно доступа к интерфейсу Оркестратора через серверный IP, пропустите данный пункт.

# Откройте файл hosts
sudo nano /etc/hosts

# Добавьте запись (замените на ваш IP и домен):
192.168.1.100    orchestrator.mycompany.com

Инициализация Оркестратора#

  1. Обратитесь по URL адресу: https://<ваш_домен_или_IP>/setup.php
  2. Если IP адрес отображается верно, нажмите на кнопку "Отправить"
  3. В ответе скрипта будет указан GUID оркестратора - запишите его вместе с регистрационными данными

На этом установка завершена!

Система Sherpa Orchestrator доступна в браузере по доменному имени или IP-адресу.

Далее необходимо добавить и активировать лицензию для оркестратора и лицензии для роботов в веб-интерфейсе оркестратора.