Processo de instalação do Sherpa Orchestrator (versão local)#
Preparação do servidor#
Adicionando usuário ao grupo sudo#
# Faça login como usuário root
su
# Adicione o usuário ao grupo sudo
/sbin/usermod -aG sudo <userName>
# Reinicie o sistema para aplicar as alterações
exit
💡 Comentários sobre a adição de usuário ao sudo
/sbin/usermod -aG sudo - adiciona o usuário ao grupo sudo
-a- append (adiciona aos grupos existentes)-G sudo- adiciona ao grupo sudo<userName>- substitua pelo nome do seu usuário
Importante: Após executar o comando, é necessário reiniciar o sistema para aplicar as alterações.
Configuração do fuso horário#
# Defina o fuso horário UTC
sudo timedatectl set-timezone UTC
# Verifique a configuração
timedatectl
💡 Comentários sobre a configuração do fuso horário
sudo timedatectl set-timezone UTC - define o fuso horário UTC timedatectl - mostra as configurações atuais de data e hora
Recomenda-se usar UTC para aplicativos de servidor.
Atualização do sistema#
# Atualize a lista de pacotes
sudo apt -y update
# Instale ferramentas para trabalhar com repositórios
sudo apt -y install software-properties-common gnupg2
# Atualize o sistema
sudo apt -y upgrade
💡 Comentários sobre a atualização do sistema
sudo apt -y update - atualiza a lista de pacotes disponíveis dos repositórios sudo apt -y install software-properties-common gnupg2 - instala ferramentas para trabalhar com repositórios
software-properties-common- utilitários para gerenciar repositóriosgnupg2- ferramenta para trabalhar com chaves GPG
sudo apt -y upgrade - atualiza todos os pacotes instalados para as versões mais recentes
-y- confirmação automática da instalação
Descompactação do arquivo de atualização#
Neste estágio, você descompactará o arquivo com os arquivos do Sherpa Orchestrator e preparará o sistema para a instalação.
# Navegue até o diretório com os arquivos
cd /opt
# Encontre e descompacte o arquivo de atualização (a versão mais recente é escolhida automaticamente)
tar -xvzf "$(ls orchestrator_local_update_*.tgz | sort -V | tail -n 1)"
# Navegue até o diretório com os arquivos descompactados
cd SherpaOrchestrator
💡 Comentários sobre a descompactação do arquivo
cd /opt - navega até o diretório com os arquivos de instalação tar -xvzf "$(ls orchestrator_local_update_*.tgz | sort -V | tail -n 1)" - descompacta o arquivo de atualização
tar -xvzf- descompacta o arquivo com saída detalhadals orchestrator_local_update_*.tgz- encontra todos os arquivos de arquivos de atualizaçãosort -V- ordena as versões de forma natural (1.0 < 1.1 < 1.10)tail -n 1- escolhe o arquivo mais recente
cd SherpaOrchestrator - navega até o diretório com os arquivos descompactados
Resultado esperado: Os arquivos e diretórios necessários para a instalação do Sherpa Orchestrator serão descompactados.
Preparação dos scripts para execução#
# Navegue até o diretório sh_scripts
cd sh_scripts/
# Torne todos os scripts executáveis
chmod +x *.sh
# Volte para o diretório raiz do projeto
cd ..
💡 Comentários sobre a preparação dos scripts
cd sh_scripts/ - navega até o diretório com os scripts de instalação
*chmod +x .sh - define permissões de execução para todos os shell scripts
chmod +x- adiciona permissão de execução*.sh- todos os arquivos com a extensão .sh
cd .. - retorna ao diretório raiz do projeto
Inicialização da configuração#
# Execute a inicialização das configurações
sudo ./sh_scripts/create_config.sh
💡 Comentários sobre a inicialização da configuração
sudo ./sh_scripts/create_config.sh - executa o script de inicialização da configuração básica
- Cria os diretórios necessários
- Configura os parâmetros básicos do sistema
- Prepara a estrutura para configuração adicional
Instalação do SGBD MariaDB#
# Adicione o repositório 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"
# Atualize a lista de pacotes
sudo apt update
# Instale o MariaDB
sudo apt install mariadb-server mariadb-client
💡 Comentários sobre a instalação do MariaDB
Adicionando o repositório:
sudo apt-key adv --recv-keys- adiciona a chave GPG do repositóriosudo add-apt-repository- adiciona o repositório MariaDB$(lsb_release -cs)- determina automaticamente o codinome da distribuição
Instalação dos pacotes:
mariadb-server- servidor de banco de dadosmariadb-client- cliente para conexão ao banco de dados
Configuração básica de segurança do MySQL/MariaDB#
# Execute o script de configuração de segurança
sudo mysql_secure_installation
Perguntas e opções de resposta para configuração de segurança:
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
💡 Comentários sobre a configuração de segurança
mysql_secure_installation - script interativo para configuração básica de segurança do MySQL/MariaDB
Respostas recomendadas:
- Switch to unix_socket authentication - sim (y) - usar autenticação via unix socket
- Change the root password - sim (y) - definir senha para o usuário root
- Remove anonymous users - sim (y) - remover usuários anônimos
- Disallow root login remotely - não (n) - permitir que o root se conecte remotamente
- Remove test database - sim (y) - remover o banco de dados de teste
- Reload privilege tables - sim (y) - recarregar as tabelas de privilégios
Configuração do banco de dados e usuário#
# Conecte-se ao MySQL como root
mysql -u root -p
# Execute os seguintes comandos no shell do MySQL:
-- Adicionando usuário ao BD (substitua a senha por uma segura)
GRANT ALL ON orchestrator.* TO 'orchestrator'@'localhost' IDENTIFIED BY 'mD2vjt(HqZKW' WITH GRANT OPTION;
-- Recarregar privilégios
FLUSH PRIVILEGES;
-- Selecionar banco de dados
USE orchestrator;
-- Atualizar registro da conta
UPDATE `accounts` SET `parent_account_id` = '1' WHERE `accounts`.`id` = 1;
-- Sair do MySQL
exit;
💡 Comentários sobre a configuração do banco de dados
GRANT ALL ON orchestrator. TO 'orchestrator'@'localhost'...* - cria o usuário orchestrator com plenos direitos no banco orchestrator
'orchestrator'@'localhost'- o usuário pode se conectar apenas a partir do localhostWITH GRANT OPTION- o usuário pode conceder permissões a outros usuários
FLUSH PRIVILEGES - recarrega as tabelas de privilégios
UPDATE accounts... - define parent_account_id para a conta do sistema
Importante: Substitua a senha 'mD2vjt(HqZKW' por uma senha única e segura!
Instalação do servidor web e PHP#
# Instale os pacotes necessários
sudo apt -y install lsb-release apt-transport-https ca-certificates curl
# Adicione o repositório 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
# Atualize a lista de pacotes
sudo apt-get update
# Instale o Nginx e 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
💡 Comentários sobre a instalação do servidor web
Adicionando o repositório PHP:
- Adiciona a chave GPG do repositório PHP do sury.org
- Adiciona o repositório para PHP 8.5
Instalação dos pacotes:
nginx- servidor webphp8.5- interpretador PHPphp8.5-fpm- Gerenciador de Processos FastCGI para PHP*php8.5-*- extensões PHP para várias funções
Configuração do PHP#
# Abra o arquivo de configuração do PHP-FPM
sudo nano /etc/php/8.5/fpm/php.ini
# Encontre e altere os seguintes parâmetros:
upload_max_filesize = 100M
post_max_size = 100M
# Salve o arquivo e reinicie o PHP-FPM
sudo service php8.5-fpm restart
💡 Comentários sobre a configuração do PHP
upload_max_filesize = 100M - tamanho máximo do arquivo carregado post_max_size = 100M - tamanho máximo dos dados POST
sudo service php8.5-fpm restart - reinicia o PHP-FPM para aplicar as alterações
Configuração do Nginx#
# Abra o arquivo de configuração do Nginx
sudo nano /etc/nginx/nginx.conf
# Encontre a seção http e adicione:
client_max_body_size 100m;
# Salve o arquivo
💡 Comentários sobre a configuração do Nginx
client_max_body_size 100m - define o tamanho máximo do corpo da requisição do cliente
- Deve estar na seção
http { ... } - O valor corresponde às configurações do PHP
Configuração do domínio e configuração do Sherpa#
# Abra o arquivo de configuração do domínio
sudo nano /opt/SherpaOrchestrator/backend/config/domain.conf
# Substitua "orchestrator.sherparpa.ru" pelo seu domínio ou endereço IP (total de 4 substituições)
# Defina o caminho para o socket do PHP-FPM dependendo do SO:
# Para Ubuntu 18.04:
# fastcgi_pass unix:/var/run/php/php8.5-fpm.sock;
# Para Debian:
fastcgi_pass unix:/run/php/php8.5-fpm.sock;
# Para CentOS 8:
# fastcgi_pass unix:/run/php-fpm/www.sock;
# Para CentOS 7:
# fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
💡 Comentários sobre a configuração do domínio
Substituição do domínio: É necessário substituir todas as ocorrências de "orchestrator.sherparpa.ru" pelo seu domínio real ou endereço IP
Configuração do socket do PHP-FPM: O caminho depende da distribuição Linux:
- Debian/Ubuntu normalmente:
/run/php/php8.5-fpm.sock - CentOS:
/run/php-fpm/www.sock
Importante: Se o caminho estiver incorreto, verifique os logs do Nginx: /var/log/nginx/error.log
Configuração dos certificados SSL#
# Copie os certificados SSL para o diretório de configuração
# Substitua os caminhos pelos caminhos reais dos seus certificados
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
💡 Comentários sobre os certificados SSL
Requisitos para os certificados:
- O certificado deve ser renomeado para
orchestrator.crt - A chave privada deve ser renomeada para
orchestrator.key - Formatos: .crt/.pem para o certificado, .key para a chave
Obtenção de certificados:
- Consulte o administrador do sistema para certificados corporativos
- Use Let's Encrypt para certificados gratuitos
- Para testes, você pode criar certificados autoassinados
Configuração do arquivo de configuração do aplicativo#
# Abra o arquivo de configuração do aplicativo
sudo nano /opt/SherpaOrchestrator/backend/config/config.ini
# Configure os parâmetros de conexão com o banco de dados:
database_host=127.0.0.1
database_port=3306
database_user=orchestrator
database_password="mD2vjt(HqZKW"
database_dbname=orchestrator
💡 Comentários sobre a configuração do aplicativo
Parâmetros do banco de dados:
database_host- endereço do servidor de banco de dados (geralmente 127.0.0.1 para instalação local)database_port- porta MySQL/MariaDB (por padrão 3306)database_user- usuário do banco de dados (orchestrator)database_password- senha do usuário (deve coincidir com a criada anteriormente)database_dbname- nome do banco de dados (orchestrator)
Importante: A senha deve coincidir exatamente com a senha definida ao criar o usuário do BD
Configuração do phinx.php (migrações do BD)#
O arquivo backend/config/phinx.php é usado pelo Phinx para executar migrações. A senha nele deve coincidir com a senha do BD do config.ini:
sudo nano /opt/SherpaOrchestrator/backend/config/phinx.php
Na seção environments, no bloco do BD utilizado (por exemplo, orchestrator ou mysql), o parâmetro 'pass' deve coincidir com database_password do config.ini. Caso contrário, as migrações durante a instalação ou atualização falharão.
Ativação da configuração do Nginx#
# Copie a configuração para sites-available
sudo cp /opt/SherpaOrchestrator/backend/config/domain.conf /etc/nginx/sites-available/default
# Reinicie o Nginx
sudo systemctl restart nginx
💡 Comentários sobre a ativação do Nginx
sudo cp ... /etc/nginx/sites-available/default - copia a configuração do site para as configurações ativas do Nginx
sudo systemctl restart nginx - reinicia o Nginx para aplicar a nova configuração
Configuração de permissões#
# Defina as permissões e o proprietário corretos
sudo chown -R www-data:www-data /opt/SherpaOrchestrator
sudo chmod -R 775 /opt/SherpaOrchestrator
💡 Comentários sobre a configuração de permissões
sudo chown -R www-data:www-data /opt/SherpaOrchestrator - define www-data como proprietário dos arquivos
www-data- usuário do servidor web Nginx/PHP-FPM-R- recursivamente para todos os arquivos e diretórios
sudo chmod -R 775 /opt/SherpaOrchestrator - define as permissões dos arquivos
775- proprietário e grupo podem ler/escrever/executar, outros apenas ler/executar
Criação do banco de dados de arquivamento#
-- Conecte-se ao MySQL
mysql -u root -p
-- Crie o banco de dados de arquivamento
CREATE DATABASE IF NOT EXISTS orchestrator_archive CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-- Saia
exit;
💡 Comentários sobre o banco de dados de arquivamento
CREATE DATABASE IF NOT EXISTS orchestrator_archive - cria o banco de dados de arquivamento
IF NOT EXISTS- cria apenas se não existirCHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci- define a codificação UTF-8 com suporte a Unicode
Atualização da estrutura do banco de dados#
# Vá para o diretório do aplicativo
cd /opt/SherpaOrchestrator
# Verifique as configurações de conexão com o BD no arquivo phinx.php
sudo nano backend/config/phinx.php
# Execute a atualização do banco de dados
sudo ./sh_scripts/migrate.sh
Resultado esperado após a atualização bem-sucedida:
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
💡 Comentários sobre a atualização do banco de dados
Verificação do phinx.php:
'environments' => [
'orchestrator' => [
'adapter' => 'mysql',
'host' => 'localhost',
'name' => 'orchestrator',
'user' => 'orchestrator',
'pass' => 'mD2vjt(HqZKW',
// ...
],
],
sudo ./migrate.sh - executa as migrações do banco de dados através do Phinx
- Atualiza a estrutura das tabelas
- Adiciona os índices necessários
- Cria gatilhos e procedimentos
Configuração de tarefas CRON#
# Abra o editor CRON
sudo crontab -e
# Adicione a linha para executar o agendador de tarefas:
* * * * * php /opt/SherpaOrchestrator/backend/app/scheduleCronRunner.php
# Salve e saia do editor
💡 Comentários sobre a configuração do CRON
sudo crontab -e - abre o editor CRON para o usuário root
* * * * *- executa a cada minutophp /opt/SherpaOrchestrator/backend/app/scheduleCronRunner.php- executa o agendador de tarefas do Sherpa
Agendador de tarefas:
- Gerencia o cronograma de execução das tarefas
- Processa tarefas pendentes
- Realiza limpeza automática
Instalação do Node.js e PM2```bash#
Instale o Node.js 22.x#
sudo curl -sL https://deb.nodesource.com/setup_22.x | bash - sudo apt-get install -y nodejs
Atualize o npm#
sudo npm install -g npm@latest
Instale o PM2#
sudo npm install -g pm2
<details>
<summary>💡 Comentários sobre a instalação do Node.js e PM2</summary>
**curl -sL https://deb.nodesource.com/setup\_22.x | bash -** - adiciona o repositório do Node.js
* `-sL` - silencioso e segue redirecionamentos
* `setup_22.x` - script para a versão 22.x do Node.js
**sudo apt-get install -y nodejs** - instala o Node.js
**sudo npm install -g pm2** - instala o PM2 globalmente
* PM2 - gerenciador de processos para aplicações Node.js
* Reinício automático de aplicações
* Gerenciamento de logs e monitoramento
</details>
### Configuração do serviço WebSocket
```bash
# Acesse o diretório do serviço websocket
cd /opt/SherpaOrchestrator/backend/app/websocket/
# Instale as dependências
sudo npm install
# Inicie o serviço através do PM2
sudo pm2 start index.js --watch --ignore-watch="node_modules" --name "Websockets"
# Configure a inicialização automática do PM2
sudo pm2 startup
# Salve a configuração do PM2
sudo pm2 save
💡 Comentários sobre a configuração do WebSocket
sudo npm install - instala as dependências do Node.js a partir do package.json
sudo pm2 start index.js --watch --ignore-watch="node_modules" --name "Websockets"
--watch- reinício ao alterar arquivos--ignore-watch="node_modules"- ignora alterações em node_modules--name "Websockets"- nome do processo no PM2
sudo pm2 startup - configura a inicialização automática do PM2 ao iniciar o sistema sudo pm2 save - salva a configuração atual dos processos
Configuração do nome de domínio (opcional)#
Se você está satisfeito com o acesso à interface do Orquestrador através do IP do servidor, pule esta etapa.
# Abra o arquivo hosts
sudo nano /etc/hosts
# Adicione a entrada (substitua pelo seu IP e domínio):
192.168.1.100 orchestrator.mycompany.com
Inicialização do Orquestrador#
- Acesse a URL:
https://<seu_dominio_ou_IP>/setup.php - Se o endereço IP for exibido corretamente, clique no botão "Enviar"
- Na resposta do script, será fornecido o GUID do orquestrador - anote-o junto com os dados de registro
Com isso, a instalação está concluída!
O sistema Sherpa Orchestrator está disponível no navegador pelo nome de domínio ou endereço IP.
Em seguida, é necessário adicionar e ativar a licença para o orquestrador e a licença para os robôs na interface web do orquestrador.