# Processo de atualização do Sherpa Orchestrator (versão local)

### Informações gerais sobre a atualização

A atualização do Sherpa Orchestrator inclui os seguintes componentes:

* Atualização dos arquivos do aplicativo
* Atualização da estrutura do banco de dados
* Atualização das dependências do Node.js (se necessário)
* Reinício dos serviços

### Backup antes da atualização

**Sempre crie backups antes da atualização!**

#### Backup do banco de dados

```bash
# Crie um dump do banco de dados
mysqldump -u root -p orchestrator > orchestrator_backup_$(date +%Y%m%d_%H%M%S).sql

# Crie um dump do banco de dados de arquivo (se utilizado)
mysqldump -u root -p orchestrator_archive > orchestrator_archive_backup_$(date +%Y%m%d_%H%M%S).sql
```

#### Backup dos arquivos de configuração

```bash
# Crie um backup da configuração
cp -r /opt/SherpaOrchestrator/backend/config /opt/SherpaOrchestrator/backend/config_backup_$(date +%Y%m%d_%H%M%S)

# Crie um backup dos certificados SSL
cp -r /opt/SherpaOrchestrator/backend/config/certs /opt/SherpaOrchestrator/backend/config/certs_backup_$(date +%Y%m%d_%H%M%S)
```

#### Backup dos logs e dados

```bash
# Crie um backup dos logs
cp -r /opt/SherpaOrchestrator/backend/logs /opt/SherpaOrchestrator/backend/logs_backup_$(date +%Y%m%d_%H%M%S)
```

### Download dos arquivos de atualização

```bash
# Vá para o diretório /opt e baixe o arquivo como na etapa de preparação
cd /opt

# Baixe o arquivo de atualização
orchestrator_local_update_*.tgz

```

### Parar serviços antes da atualização

```bash
# Pare os processos do PM2
sudo pm2 stop all
sudo pm2 delete all

# Pare o Nginx
sudo systemctl stop nginx

# Pare o PHP-FPM
sudo systemctl stop php8.5-fpm

# Pare o MySQL/MariaDB (opcional, para parada completa)
sudo systemctl stop mariadb
```

### Criar um backup da instalação atual

```bash
# Renomeie o diretório atual
sudo mv /opt/SherpaOrchestrator /opt/SherpaOrchestrator_backup_$(date +%Y%m%d_%H%M%S)
```

### Descompactar e instalar a atualização

```bash
# Crie um novo diretório
sudo mkdir /opt/SherpaOrchestrator

# 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)"


# Vá para o diretório do aplicativo
cd /opt/SherpaOrchestrator

# Torne os scripts executáveis
sudo find ./*.sh -type f | xargs chmod +x
```

### Restaurar a configuração

```bash
# Restaure os arquivos de configuração do backup
sudo cp -r /opt/SherpaOrchestrator_backup_*/backend/config/* /opt/SherpaOrchestrator/backend/config/

# Restaure os certificados SSL
sudo cp -r /opt/SherpaOrchestrator_backup_*/backend/config/certs/* /opt/SherpaOrchestrator/backend/config/certs/

# Defina as permissões corretas
sudo chown -R www-data:www-data /opt/SherpaOrchestrator
sudo chmod -R 775 /opt/SherpaOrchestrator
```

**Importante:** Após a restauração, verifique se as senhas do banco de dados em `backend/config/phinx.php` são as mesmas que em `config.ini` (parâmetro `'pass'` na seção `environments`). Caso contrário, as migrações durante a atualização do banco de dados falharão.

### Atualização do banco de dados

```bash
# Verifique as configurações de conexão em phinx.php (as senhas devem coincidir com config.ini)
sudo nano backend/config/phinx.php

# Execute as migrações do banco de dados
sudo ./migrate.sh
```

### Atualização das dependências do Node.js (se necessário)

```bash
# Vá para o diretório websocket
cd /opt/SherpaOrchestrator/backend/app/websocket/

# Atualize as dependências
sudo npm install

# Volte para o diretório principal
cd /opt/SherpaOrchestrator
```

### Iniciar serviços após a atualização

```bash
# Inicie o MySQL/MariaDB (se parou)
sudo systemctl start mariadb

# Inicie o PHP-FPM
sudo systemctl start php8.5-fpm

# Inicie o Nginx
sudo systemctl start nginx

# Inicie o serviço WebSocket
cd /opt/SherpaOrchestrator/backend/app/websocket/
sudo pm2 start index.js --name "Websockets"
sudo pm2 save

# Volte para o diretório principal
cd /opt/SherpaOrchestrator
```

### Verificação de funcionamento após a atualização

```bash
# Verifique o status dos serviços
sudo systemctl status nginx
sudo systemctl status php8.5-fpm
sudo systemctl status mariadb

# Verifique os processos do PM2
sudo pm2 list
sudo pm2 logs Websockets --lines 20

# Verifique a disponibilidade da interface web
curl -I https://your-domain-or-ip

# Verifique os logs do Nginx em busca de erros
sudo tail -f /var/log/nginx/error.log
```

### Limpeza após atualização bem-sucedida

```bash
# Após testes bem-sucedidos, remova os backups antigos
# (execute apenas após confirmar a funcionalidade!)

# Remova os arquivos de atualização antigos
rm -f /opt/orch_local_update_*.tgz

# Remova os backups antigos (se tiver certeza da funcionalidade)
# rm -rf /opt/SherpaOrchestrator_backup_*
```

### Possíveis problemas durante a atualização

#### Problemas com o banco de dados

* Verifique a correção das configurações em `config.ini` e `phinx.php`
* Certifique-se de que o usuário do banco de dados tenha permissões suficientes
* Verifique os logs das migrações

#### Problemas com o servidor web

* Verifique a sintaxe da configuração do Nginx: `sudo nginx -t`
* Verifique os logs: `/var/log/nginx/error.log`
* Verifique os caminhos para o socket do PHP-FPM

#### Problemas com WebSocket

* Verifique os logs do PM2: `sudo pm2 logs Websockets`
* Verifique as dependências do Node.js: `npm list`
* Verifique a disponibilidade das portas

#### Rollback em caso de atualização malsucedida

Se a atualização falhar:

```bash
# Pare todos os serviços
sudo pm2 stop all
sudo systemctl stop nginx php8.5-fpm

# Restaure do backup
sudo rm -rf /opt/SherpaOrchestrator
sudo mv /opt/SherpaOrchestrator_backup_* /opt/SherpaOrchestrator

# Restaure as permissões
sudo chown -R www-data:www-data /opt/SherpaOrchestrator
sudo chmod -R 775 /opt/SherpaOrchestrator

# Inicie os serviços
sudo systemctl start php8.5-fpm nginx
cd /opt/SherpaOrchestrator/backend/app/websocket/
sudo pm2 start index.js --name "Websockets"
```

### Recomendações para atualização

1. **Sempre faça backups** antes da atualização
2. **Teste a atualização** em um ambiente de teste, se possível
3. **Atualize em horários de menor movimento** para minimizar o tempo de inatividade
4. **Documente o processo** de atualização para sua equipe
5. **Verifique os logs** após a atualização em busca de erros


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.sherparpa.ru/pt/sherpa-rpa/sherpa-orchestrator/ustanovka-sherpa-orchestrator/bez-ispolzvaniya-docker/process-obnovlenie-sherpa-orchestrator-lokalnaya-versiya.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
