# Processo de atualização do Sherpa Orchestrator

## Atualização do Sherpa Orchestrator

### 1. Download dos arquivos

Faça o download de todos os arquivos de atualização mais recentes do Sherpa Orchestrator pelos links na seção de preparação

### 2. Transferência dos arquivos para o servidor

Após o download, transfira todos os arquivos para o servidor Linux de destino por qualquer método conveniente:

#### Via SCP/SFTP

```bash
# Copie os arquivos para o servidor
scp *.tar.gz user@target-server:/path/to/installation/directory/
```

<details>

<summary>💡 Notas sobre a transferência via SCP/SFTP</summary>

\**scp .tar.gz user\@target-server:/path/to/installation/directory/* - copia os arquivos para o servidor remoto

* `scp` - cópia segura
* `*.tar.gz` - padrão para selecionar arquivos de atualização
* `user@target-server` - credenciais de conexão
* `/path/to/installation/directory/` - caminho de destino no servidor

</details>

#### Via cliente SFTP

Use qualquer cliente SFTP (FileZilla, WinSCP, Cyberduck) para copiar os arquivos para o servidor.

#### Via pasta de rede

Se o servidor estiver acessível por SMB/CIFS, use o Explorador do Windows ou o comando `copy`.

#### Verificação da transferência

```bash
# Conecte-se ao servidor
ssh user@target-server

# Navegue até o diretório com os arquivos (geralmente opt/SherpaOrchestrator)
cd /path/to/installation/directory

# Verifique a presença de todos os arquivos
ls -la *.tar.gz

# Verifique os tamanhos dos arquivos
ls -lh *.tar.gz
```

<details>

<summary>💡 Notas sobre a verificação da transferência</summary>

**ssh user\@target-server** - conecta ao servidor remoto via SSH

* `ssh` - secure shell
* `user@target-server` - credenciais de conexão

**cd /path/to/installation/directory** - navega para o diretório com os arquivos

\**ls -la .tar.gz* - exibe informações detalhadas sobre os arquivos baixados

* `-l` - formato longo
* `-a` - mostra arquivos ocultos

\**ls -lh .tar.gz* - exibe os tamanhos dos arquivos em formato legível

* `-h` - human readable (KB, MB, GB)

</details>

### 3. Parada dos contêineres

```bash
# Pare todos os serviços em execução
docker compose down
```

<details>

<summary>💡 Notas sobre a parada dos contêineres</summary>

**docker compose down** - para todos os serviços do Docker Compose

* Para e remove contêineres e redes
* Preserva volumes e imagens

**Verificação da parada:** **docker ps -a | grep orchestrator** - verifica o status dos contêineres

* `docker ps -a` - mostra todos os contêineres (incluindo os parados)
* `| grep orchestrator` - filtra pelo nome orchestrator

</details>

### 4. Carregamento das imagens Docker

```bash
# Crie um backup do arquivo .env (se existir)
cp .env .env.backup

# Crie um backup da configuração
cp -r ./backend/config ./backend/config_backup

# Se certificados personalizados forem utilizados, copie-os para um local seguro
cp -r ./backend/config/certs ./certs_backup

# Descompacte os arquivos de atualização
tar -xvzf "$(ls docker_orchestrator_client_files_*.tgz | sort -V | tail -n 1)"

# Copie a configuração padrão do nginx (se não existir)
cp -r ./nginx/config/default/. ./nginx/config

# Torne os scripts executáveis
chmod +x sh_scripts/*.sh

# Copie a configuração do orchestrator (os arquivos são substituídos pelos novos)
cp -af ./backend/config/default/. ./backend/config/

# Copie a configuração do vault (os arquivos são substituídos pelos novos)(se for usar o vault)
cp -af ./vault/config/default/. ./vault/config

# Se um backup dos certificados foi criado, restaure-os
cp -r ./certs_backup/* ./nginx/config/certs/

# Carregue todas as imagens Docker
sudo ./sh_scripts/load_all_docker_images.sh
```

<details>

<summary>💡 Notas sobre o carregamento das imagens Docker</summary>

**Criação de backups:**

* `cp .env .env.backup` - backup do arquivo de configuração
* `cp -r ./backend/config ./backend/config_backup` - backup do diretório config
* `cp -r ./backend/config/certs ./certs_backup` - backup dos certificados SSL

**Descompactação e preparação:**

* `tar -xvzf "$(ls orchestrator_docker_update_*.tgz | sort -V | tail -n 1)"` - descompacta os arquivos de atualização mais recentes
* `chmod +x sh_scripts/*.sh` - torna os scripts executáveis
* `cp -r ./certs_backup/* ./backend/config/certs/` - restaura os certificados

**sudo ./sh\_scripts/load\_all\_docker\_images.sh** - carrega todas as imagens Docker

**Verificação do carregamento:** **docker images | grep orchestrator** - exibe as imagens do orchestrator carregadas

</details>

### 5. Seleção da configuração de BD e verificação das variáveis de ambiente

```bash
# Copie o arquivo compose cliente combinado
cp docker-compose.client.yml docker-compose.yml
```

<details>

<summary>💡 Notas sobre a seleção da configuração de BD</summary>

**cp docker-compose.client.yml docker-compose.yml** - seleciona a configuração cliente combinada

* O diretório de trabalho deve conter o arquivo final `docker-compose.yml`
* Para MariaDB, execute o perfil `mariadb`
* Para PostgreSQL, execute o perfil `pg`

</details>

```bash
# Abra o arquivo .env para revisão
nano ./.env

# Verifique a presença das variáveis obrigatórias
grep -E "(HOST_IP|DB_PASSWORD|POSTGRES_PASSWORD|NGINX_DOMAIN_NAME)" .env

# Verifique a correção da sintaxe
cat .env | grep -v '^#' | grep '=' | wc -l
```

<details>

<summary>💡 Notas sobre a verificação das variáveis de ambiente</summary>

**nano ./.env** - abre o arquivo de configuração no editor

**grep -E "(HOST\_IP|DB\_PASSWORD|POSTGRES\_PASSWORD|NGINX\_DOMAIN\_NAME)" .env** - verifica a presença das variáveis-chave

* `-E` - expressões regulares estendidas
* Lista as variáveis obrigatórias separadas por |

**cat .env | grep -v '^#' | grep '=' | wc -l** - conta o número de variáveis

* `cat .env` - exibe o conteúdo do arquivo
* `grep -v '^#'` - exclui comentários
* `grep '='` - mantém apenas linhas com variáveis
* `wc -l` - conta o número de linhas

</details>

#### Verificação de config.ini e phinx.php

Certifique-se de que as mesmas senhas especificadas no arquivo .env estão presentes:

* **backend/config/config.ini** — parâmetro `database_password` (e ao usar PostgreSQL — as configurações correspondentes);
* **backend/config/phinx.php** — na seção `environments`, o parâmetro `'pass'` no bloco `'mysql'` ou `'pgsql'` (devem coincidir com as senhas de `.env` e config.ini).

Caso contrário, as migrações na inicialização dos contêineres podem falhar com erro.

```bash
# Edite a configuração se necessário
nano backend/config/config.ini
nano backend/config/phinx.php
```

{% hint style="warning" %} <mark style="color:$danger;">SE A VERSÃO ATUAL DO ORCHESTRATOR DA QUAL VOCÊ ESTÁ ATUALIZANDO FOR MENOR OU IGUAL A v141856, É NECESSÁRIO MONTAR O ARQUIVO cache.bin DENTRO DO CONTÊINER orchestrator NO docker-compose.yml</mark>
{% endhint %}

```
    volumes:
      - orchestrator-storage:/opt/SherpaOrchestrator/backend/Storage
      - ./backend/config:/opt/SherpaOrchestrator/backend/config:z
      - ./path/to/cache.bin:/opt/SherpaOrchestrator/backend/app/cache.bin
```

### 6. Inicialização dos contêineres

```bash
# Inicie os serviços com o perfil de BD selecionado
# Opção 1: MariaDB
docker compose --profile mariadb up -d

# Opção 2: PostgreSQL
docker compose --profile pg up -d

# Se o Vault for necessário (opcional), adicione o perfil vault:
# Opção 1: MariaDB + Vault
docker compose --profile mariadb --profile vault up -d

# Opção 2: PostgreSQL + Vault
docker compose --profile pg --profile vault up -d
```

<details>

<summary>💡 Notas sobre a inicialização dos contêineres</summary>

**docker compose --profile \<mariadb|pg> up -d** - inicia os serviços em modo background com o banco de dados selecionado

* `-d` - modo detached (background)

**docker compose --profile \<mariadb|pg> --profile vault up -d** - inicia o sistema com Vault

* O perfil `vault` é opcional e é ativado apenas quando armazenamento de segredos e migração para o Vault são necessários

**Verificação da inicialização:**

* `docker compose ps` - exibe o status de todos os contêineres
* `docker compose logs -f orchestrator` - exibe os logs de inicialização em tempo real

</details>

A inicialização do Vault e a migração de segredos estão descritas em um guia separado: `6) VAULT.md`.

Após uma atualização bem-sucedida, o sistema Sherpa Orchestrator está pronto para uso.


---

# 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/s-ispolzovaniem-docker/process-obnovleniya-sherpa-orchestrator.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.
