# Requisitos do servidor Sherpa Orchestrator

### Requisitos do sistema

* **OS**: recomenda-se Ubuntu 20.04+, no entanto, geralmente não há problemas com outras distribuições Linux.
* **CPU**: x86-64-v2, mínimo 2 núcleos
* **RAM**: mínimo 4 GB, recomendado 8 GB+
* **Disco**: 20 GB+ de espaço livre
* **Rede**: Conexão de internet estável
* **Acesso**: permissões sudo para instalação

**Importante:**

* A instalação leva tempo devido ao download das imagens do Docker
* Após a instalação, a internet não é necessária para operação

### Preparação do servidor

#### Verificação de recursos

A seguir, utiliza-se a sintaxe do Ubuntu, se o comando não for adequado, você precisará alterar a sintaxe de acordo com seu SO

```bash
# Verifique os recursos do sistema
df -h          # Espaço em disco
free -h        # Memória RAM
lscpu | grep -E "^CPU\(s\)|Model name"  # Informações sobre o processador
```

<details>

<summary>💡 Comentários sobre a verificação de recursos</summary>

**df -h** - mostra o uso do espaço em disco em formato legível por humanos **free -h** - mostra informações sobre a memória RAM **lscpu** - mostra informações sobre o processador

**Valores mínimos recomendados:**

* Disco: mínimo 20 GB de espaço livre
* RAM: mínimo 4 GB
* CPU: mínimo 2 núcleos

</details>

#### Instalação de ferramentas básicas

```bash
# Atualize o sistema e instale as ferramentas
sudo apt update
sudo apt install -y ca-certificates curl tar
```

<details>

<summary>💡 Comentários sobre a instalação de ferramentas básicas</summary>

**sudo apt update** - atualiza a lista de pacotes disponíveis dos repositórios **sudo apt install -y ca-certificates curl tar** - instala as ferramentas necessárias:

* `ca-certificates` - certificados raiz para verificação SSL
* `curl` - ferramenta para download de arquivos
* `tar` - utilitário para trabalhar com arquivos compactados
* `-y` - confirmação automática da instalação

</details>

### Instalação do Docker (obrigatório)

Sherpa Orchestrator funciona exclusivamente em contêineres Docker.

#### Instalação do Docker CE

```bash
# Adicione a chave GPG oficial do Docker
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Adicione o repositório do Docker
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Instale o Docker
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
```

<details>

<summary>💡 Comentários sobre a instalação do Docker</summary>

**Adicionando a chave GPG:**

* `sudo install -m 0755 -d /etc/apt/keyrings` - cria o diretório para as chaves com as permissões corretas
* `sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc` - baixa a chave GPG do Docker
* `sudo chmod a+r /etc/apt/keyrings/docker.asc` - define permissões de leitura para todos

**Adicionando o repositório:**

* `echo "deb [...]` - adiciona o repositório oficial do Docker à lista de fontes APT
* Utiliza variáveis de ambiente para determinar a arquitetura e a versão do Ubuntu

**Instalação de pacotes:**

* `sudo apt update` - atualiza a lista de pacotes após adicionar um novo repositório
* `sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin` - instala o Docker e os componentes

</details>

#### Configuração e verificação

```bash
# Adicione o usuário ao grupo docker (opcional)
sudo usermod -aG docker $USER

# Inicie e habilite o Docker
sudo systemctl start docker
sudo systemctl enable docker

# Verifique a instalação
docker --version
docker compose version
```

<details>

<summary>💡 Comentários sobre a configuração do Docker</summary>

**sudo usermod -aG docker $USER** - adiciona o usuário atual ao grupo docker

* `-a` - append (adiciona aos grupos existentes)
* `-G docker` - adiciona ao grupo docker
* `$USER` - variável com o nome do usuário atual

**sudo systemctl start docker** - inicia o daemon do Docker **sudo systemctl enable docker** - habilita a inicialização automática do Docker na inicialização do sistema

**docker --version** - mostra a versão do Docker **docker compose version** - mostra a versão do Docker Compose

**Resultado esperado:** O Docker deve iniciar com sucesso um contêiner de teste.

</details>

### Verificação de portas

Sherpa Orchestrator utiliza as seguintes portas:

* **443** - interface web HTTPS (obrigatório)
* **5000** - API VNC proxy
* **6080-6100** - faixa de portas para conexões VNC

#### Verificação de disponibilidade de portas

```bash
# Verifique se as portas necessárias estão ocupadas
sudo netstat -tlnp | grep -E ":443 |:5000 |:608[0-9] |:609[0-9] |:6100 " || echo "Portas livres"
```

<details>

<summary>💡 Comentários sobre a verificação de portas</summary>

**sudo netstat -tlnp** - mostra todas as portas TCP em escuta e os processos

* `-t` - portas TCP
* `-l` - apenas portas em escuta
* `-n` - formato numérico (sem resolução de nomes)
* `-p` - mostra o PID e o nome do processo

**Resultado esperado:**

* Se as portas estiverem livres, o comando exibirá "Portas livres"
* Se as portas estiverem ocupadas, serão mostrados os processos que as utilizam

</details>

### Verificação de configuração

#### Verificação final antes do lançamento

```bash
# Verifique o Docker
docker --version && docker compose version

# Verifique as variáveis de ambiente
cat .env

# Verifique a disponibilidade das portas
sudo netstat -tlnp | grep -E ":443 |:5000 |:608[0-9] |:609[0-9] |:6100 " || echo "Todas as portas livres"

# Verifique o espaço em disco
df -h /var/lib/docker || echo "Driver de armazenamento do Docker não configurado"

echo "Se todas as verificações forem bem-sucedidas, você pode iniciar o Sherpa Orchestrator"
```

**Resultado esperado:** Todos os comandos devem ser executados sem erros, as portas devem estar livres.


---

# 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/trebovaniya-k-serveru-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.
