# Instalação e Configurações Evolution API

Procedimentos Evolution-API

# Como instalar a Evolution API 2.0

LInk: [https://leonardoamoyr.com/como-instalar-a-evolution-api-2-0/](https://leonardoamoyr.com/como-instalar-a-evolution-api-2-0/)

Agosto/2024

### Apontamentos de domínio da Evolution API 2.0

Acesse o local onde você adquiriu o seu domínio, entre em Zone DNS (gerenciamento de DNS) e faça os seguintes apontamentos:

Tipo A  
Nome: evolutionapi  
Objeto/Valor: IP da sua VPS

Tipo A  
Nome: www.evolutionapi  
Objeto/Valor: IP da sua VPS

### Preparando o Portainer

Agora vamos para o Portainer!

Dentro do Portainer o primeiro passo é criar uma network chamada “evolutionapi”. Depois disso, acesse a aba de containers, clique no container do Traefik e role a página até o final. Selecione a network que você acabou de criar na lista e clique no botão “Join Network”.

Feito isso, agora clique em “Stacks” e clique no botão para criar uma nova stack. Copie o código abaixo e cole dentro do editor de stacks:

```
version: '3.7'
services:
  evolution2:
    image: atendai/evolution-api:v2.1.0
    networks:
      - evolutionapi
    environment:
      - SERVER_URL=https://evolutionapi.seusite.xxx
      - AUTHENTICATION_API_KEY=xxxxxxxxxxxxxxxxxxx # Crie a sua API Key em https://api-keygen.com/
      - AUTHENTICATION_EXPOSE_IN_FETCH_INSTANCES=true
      - LANGUAGE=en
      - DEL_INSTANCE=false
      - DATABASE_PROVIDER=postgresql
      - DATABASE_CONNECTION_URI=postgresql://evolution2:evolution2@postgres:5432/evolution2?schema=public
      - DATABASE_SAVE_DATA_INSTANCE=true
      - DATABASE_SAVE_DATA_NEW_MESSAGE=true
      - DATABASE_SAVE_MESSAGE_UPDATE=true
      - DATABASE_SAVE_DATA_CONTACTS=true
      - DATABASE_SAVE_DATA_CHATS=true
      - DATABASE_SAVE_DATA_LABELS=true
      - DATABASE_SAVE_DATA_HISTORIC=true
      - DATABASE_CONNECTION_CLIENT_NAME=evolution2
      #Rabbitmq
      - RABBITMQ_ENABLED=false
      - RABBITMQ_URI=amqp://admin:admin@rabbitmq:5672/default
      - RABBITMQ_EXCHANGE_NAME=evolution
      - RABBITMQ_GLOBAL_ENABLED=false
      - RABBITMQ_EVENTS_APPLICATION_STARTUP=false
      - RABBITMQ_EVENTS_INSTANCE_CREATE=false
      - RABBITMQ_EVENTS_INSTANCE_DELETE=false
      - RABBITMQ_EVENTS_QRCODE_UPDATED=false
      - RABBITMQ_EVENTS_MESSAGES_SET=false
      - RABBITMQ_EVENTS_MESSAGES_UPSERT=true
      - RABBITMQ_EVENTS_MESSAGES_EDITED=false
      - RABBITMQ_EVENTS_MESSAGES_UPDATE=false
      - RABBITMQ_EVENTS_MESSAGES_DELETE=false
      - RABBITMQ_EVENTS_SEND_MESSAGE=false
      - RABBITMQ_EVENTS_CONTACTS_SET=false
      - RABBITMQ_EVENTS_CONTACTS_UPSERT=false
      - RABBITMQ_EVENTS_CONTACTS_UPDATE=false
      - RABBITMQ_EVENTS_PRESENCE_UPDATE=false
      - RABBITMQ_EVENTS_CHATS_SET=false
      - RABBITMQ_EVENTS_CHATS_UPSERT=false
      - RABBITMQ_EVENTS_CHATS_UPDATE=false
      - RABBITMQ_EVENTS_CHATS_DELETE=false
      - RABBITMQ_EVENTS_GROUPS_UPSERT=false
      - RABBITMQ_EVENTS_GROUP_UPDATE=false
      - RABBITMQ_EVENTS_GROUP_PARTICIPANTS_UPDATE=false
      - RABBITMQ_EVENTS_CONNECTION_UPDATE=true
      - RABBITMQ_EVENTS_CALL=false
      - RABBITMQ_EVENTS_TYPEBOT_START=false
      - RABBITMQ_EVENTS_TYPEBOT_CHANGE_STATUS=false
      #SqS
      - SQS_ENABLED=false
      - SQS_ACCESS_KEY_ID=
      - SQS_SECRET_ACCESS_KEY=
      - SQS_ACCOUNT_ID=
      - SQS_REGION=
      - WEBSOCKET_ENABLED=false
      - WEBSOCKET_GLOBAL_EVENTS=false
      - WA_BUSINESS_TOKEN_WEBHOOK=evolution
      - WA_BUSINESS_URL=https://graph.facebook.com
      - WA_BUSINESS_VERSION=v20.0
      - WA_BUSINESS_LANGUAGE=pt_BR
      #Webhook
      - WEBHOOK_GLOBAL_URL=''
      - WEBHOOK_GLOBAL_ENABLED=false
      - WEBHOOK_GLOBAL_WEBHOOK_BY_EVENTS=false
      - WEBHOOK_EVENTS_APPLICATION_STARTUP=false
      - WEBHOOK_EVENTS_QRCODE_UPDATED=true
      - WEBHOOK_EVENTS_MESSAGES_SET=true
      - WEBHOOK_EVENTS_MESSAGES_UPSERT=true
      - WEBHOOK_EVENTS_MESSAGES_EDITED=true
      - WEBHOOK_EVENTS_MESSAGES_UPDATE=true
      - WEBHOOK_EVENTS_MESSAGES_DELETE=true
      - WEBHOOK_EVENTS_SEND_MESSAGE=true
      - WEBHOOK_EVENTS_CONTACTS_SET=true
      - WEBHOOK_EVENTS_CONTACTS_UPSERT=true
      - WEBHOOK_EVENTS_CONTACTS_UPDATE=true
      - WEBHOOK_EVENTS_PRESENCE_UPDATE=true
      - WEBHOOK_EVENTS_CHATS_SET=true
      - WEBHOOK_EVENTS_CHATS_UPSERT=true
      - WEBHOOK_EVENTS_CHATS_UPDATE=true
      - WEBHOOK_EVENTS_CHATS_DELETE=true
      - WEBHOOK_EVENTS_GROUPS_UPSERT=true
      - WEBHOOK_EVENTS_GROUPS_UPDATE=true
      - WEBHOOK_EVENTS_GROUP_PARTICIPANTS_UPDATE=true
      - WEBHOOK_EVENTS_CONNECTION_UPDATE=true
      - WEBHOOK_EVENTS_LABELS_EDIT=true
      - WEBHOOK_EVENTS_LABELS_ASSOCIATION=true
      - WEBHOOK_EVENTS_CALL=true
      - WEBHOOK_EVENTS_TYPEBOT_START=false
      - WEBHOOK_EVENTS_TYPEBOT_CHANGE_STATUS=false
      - WEBHOOK_EVENTS_ERRORS=false
      - WEBHOOK_EVENTS_ERRORS_WEBHOOK=
      - CONFIG_SESSION_PHONE_CLIENT=Evolution API V2
      - CONFIG_SESSION_PHONE_NAME=Chrome
      - CONFIG_SESSION_PHONE_VERSION=2.3000.1015901307 # https://web.whatsapp.com/check-update?version=0&platform=web
      - QRCODE_LIMIT=30
      #Openai
      - OPENAI_ENABLED=true
      #Dify
      - DIFY_ENABLED=true
      #Typebot
      - TYPEBOT_ENABLED=true
      - TYPEBOT_API_VERSION=latest
      #Chatwoot
      - CHATWOOT_ENABLED=false
      - CHATWOOT_MESSAGE_READ=true
      - CHATWOOT_MESSAGE_DELETE=true
      - CHATWOOT_IMPORT_DATABASE_CONNECTION_URI=postgresql://evolution:evolution@postgres:5432/chatwoot?sslmode=disable
      - CHATWOOT_IMPORT_PLACEHOLDER_MEDIA_MESSAGE=true
      #redis
      - CACHE_REDIS_ENABLED=true
      - CACHE_REDIS_URI=redis://redis:6379/1
      - CACHE_REDIS_PREFIX_KEY=evolution
      - CACHE_REDIS_SAVE_INSTANCES=false
      - CACHE_LOCAL_ENABLED=false
      #Minio
      - S3_ENABLED=false
      - S3_ACCESS_KEY=suachave
      - S3_SECRET_KEY=suachave
      - S3_BUCKET=evolutionv3
      - S3_PORT=443
      - S3_ENDPOINT=minioserver.meubot.top
      - S3_USE_SSL=true
    labels:
      - traefik.enable=true
      - traefik.http.routers.evolution_v2.rule=Host(`evolutionapi.seusite.xxx`)
      - traefik.http.routers.evolution_v2.entrypoints=websecure
      - traefik.http.routers.evolution_v2.priority=1
      - traefik.http.routers.evolution_v2.tls.certresolver=leresolver
      - traefik.http.routers.evolution_v2.service=evolution_v2
      - traefik.http.services.evolution_v2.loadbalancer.server.port=8080
      - traefik.http.services.evolution_v2.loadbalancer.passHostHeader=true
 
  postgres:
    image: postgres:latest
    environment:
      POSTGRES_DB: evolution2
      POSTGRES_USER: evolution2
      POSTGRES_PASSWORD: evolution2
    networks:
      - evolutionapi
    volumes:
      - evolution_postgres_data:/var/lib/postgresql/data
 
  redis:
    image: redis:latest
    command: 
      - "redis-server"
      - "--appendonly yes"
      - "--port 6379"
    volumes:
      - evolution_redis_data:/data
    networks:
      - evolutionapi

volumes:
  evolution_postgres_data:
  evolution_redis_data:

networks:
  evolutionapi:
    external: true
    
```

Faça as configurações conforme eu oriento no vídeo da aula e depois clique no botão “Deploy Stack” e aguarde a finalização.

Uma vez finalizado, aguarde uns 30 segundos e acesse no seu navegador o site https://evolutionapi.seusite.xxx/manager (troque pelo seu domínio).

Agora basta logar com sua API Key e conectar sua instância.

Seja feliz =)

# Instalar Evolution API v1.0

Link: [https://github.com/EvolutionAPI/evolution-api](https://github.com/EvolutionAPI/evolution-api)

git clone [https://github.com/EvolutionAPI/evolution-api.git](https://github.com/EvolutionAPI/evolution-api.git)

Versões da V1 disponíveis para download anexo.

[evolution-api-1.7.1.zip](https://capacita.siteinternet.com.br/attachments/1)

[evolution-api-1.7.5.zip](https://capacita.siteinternet.com.br/attachments/2)

[evolution-api-1.8.2.zip](https://capacita.siteinternet.com.br/attachments/3)

# Instalação Evolution API oficial

Link: [https://doc.evolution-api.com/v2/pt/install/docker](https://doc.evolution-api.com/v2/pt/install/docker)

<header class="relative" id="bkmrk-docker"># Docker

</header>**Pré-requisitos:** Antes de prosseguir com a instalação da Evolution API v2 utilizando Docker, certifique-se de que você já tenha configurado os serviços necessários, como PostgreSQL e Redis. Siga os links abaixo para mais detalhes:

**Pré-requisitos:** Antes de prosseguir com a instalação da Evolution API v2 utilizando Docker, certifique-se de que você já tenha configurado os serviços necessários, como PostgreSQL e Redis. Siga os links abaixo para mais detalhes:

- [Configuração do Banco de Dados](https://doc.evolution-api.com/v2/pt/requirements/database)
- [Configuração do Redis](https://doc.evolution-api.com/v2/pt/requirements/redis)

Estas instruções de instalação assumem que você já instalou o Docker em sua máquina. Você pode encontrar informações sobre como instalar o Docker na  
[Documentação Oficial do Docker](https://docs.docker.com/engine/install/).

A Evolution API v2 está pronta para o Docker e pode ser facilmente implantada com Docker no modo standalone ou swarm. O repositório oficial do Evolution API contém todos os arquivos de composição necessários para instalar e executar a API.

##### <span class="cursor-pointer">  
Docker Compose</span>

Implantar a Evolution API v2 usando o Docker Compose simplifica a configuração e o gerenciamento de seus contêineres Docker. Ele permite que você defina seu ambiente Docker em um arquivo `docker-compose.yaml` e, em seguida, use um único comando para iniciar tudo.

#### ​<span style="color: rgb(170, 170, 170);">Arquivo Docker Compose</span>

O exemplo a seguir ilustra como configurar o Docker Compose para ambientes standalone, ou seja, um único servidor em execução. Para a sincronização de dois servidores em paralelo ou maior escalabilidade, utilize o Docker Swarm, recomendado para usuários mais avançados.

#### ​<span style="color: rgb(170, 170, 170);">Configuração Standalone</span>

**Atenção:** Os comandos aqui descritos como `docker compose`, podem não funcionar em versões mais antigas do Docker. Caso você esteja usando uma versão mais antiga, substitua por `docker-compose`.

O Docker standalone é adequado quando a Evolution API será executada em apenas uma máquina, sem a necessidade de escalabilidade imediata. Esta é a forma mais conveniente para a maioria dos usuários.

Para começar, crie um arquivo `docker-compose.yml` com o seguinte conteúdo:

```
version: '3.9'
services:
  evolution-api:
    container_name: evolution_api
    image: atendai/evolution-api:v2.1.1
    restart: always
    ports:
      - "8080:8080"
    env_file:
      - .env
    volumes:
      - evolution_instances:/evolution/instances

volumes:
  evolution_instances:
```

Em seguida, crie um arquivo `.env` no mesmo diretório com o seguinte conteúdo mínimo:

```
AUTHENTICATION_API_KEY=mude-me
```

Para mais configurações, você pode pegar o arquivo de exemplo no [repositório oficial](https://github.com/EvolutionAPI/evolution-api/blob/main/.env.example). Confira também o guia de variáveis de ambiente [aqui](https://doc.evolution-api.com/v2/pt/env).

#### ​<span style="color: rgb(170, 170, 170);">Inicializando a API</span>

Navegue até o diretório que contém o arquivo `docker-compose.yml` e execute o seguinte comando para iniciar os serviços definidos no arquivo:

```
docker compose up -d
```

Esse comando baixará as imagens Docker necessárias, criará os serviços, redes e volumes definidos, e iniciará o serviço da Evolution API.

#### ​<span style="color: rgb(170, 170, 170);">Verificando os Logs</span>

Após executar o comando `docker compose up`, você pode verificar os logs para confirmar se os serviços estão em execução corretamente:

```
docker logs evolution_api
```

#### ​<span style="color: rgb(170, 170, 170);">Parando o Serviço</span>

Para parar o serviço, utilize o comando:

```
docker compose down
```

<div class="absolute" id="bkmrk-%E2%80%8B-6">[​ <div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg fill="gray" height="12px" viewbox="0 0 576 512" xmlns="http://www.w3.org/2000/svg"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div>](https://doc.evolution-api.com/v2/pt/install/docker#acessando-a-api)</div>### <span class="cursor-pointer">Acessando a API</span>

Abra seu navegador e acesse [http://localhost:8080](http://localhost:8080/) para verificar se a Evolution API está operacional.

<div class="absolute" id="bkmrk-%E2%80%8B-7">[​ <div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg fill="gray" height="12px" viewbox="0 0 576 512" xmlns="http://www.w3.org/2000/svg"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div>](https://doc.evolution-api.com/v2/pt/install/docker#docker-swarm)</div>## <span class="cursor-pointer">Docker Swarm</span>

Para configurar e gerenciar um cluster Docker Swarm para a Evolution API v2, siga as instruções abaixo. O Docker Swarm é ideal para ambientes que exigem escalabilidade e alta disponibilidade.

<div class="absolute" id="bkmrk-%E2%80%8B-8">[​ <div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg fill="gray" height="12px" viewbox="0 0 576 512" xmlns="http://www.w3.org/2000/svg"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div>](https://doc.evolution-api.com/v2/pt/install/docker#instala%C3%A7%C3%A3o-do-docker-swarm)</div>### <span class="cursor-pointer">Instalação do Docker Swarm</span>

<div class="absolute" id="bkmrk-%E2%80%8B-9">[​ <div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg fill="gray" height="12px" viewbox="0 0 576 512" xmlns="http://www.w3.org/2000/svg"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div>](https://doc.evolution-api.com/v2/pt/install/docker#configurando-o-servidor-manager)</div>#### <span class="cursor-pointer">Configurando o Servidor Manager</span>

Se estiver utilizando um servidor da Hetzner, execute:

<div class="mdx-content relative mt-8 prose prose-gray dark:prose-invert" id="bkmrk-copy-5"><div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="z-10 absolute top-3 right-4"><button aria-label="Copy the contents from the code block" class="h-7 w-7 flex items-center justify-center rounded-md backdrop-blur peer group/copy-button" data-testid="copy-code-button"><svg class="w-4 h-4 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60" fill="none" height="18" viewbox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg></button><div aria-hidden="true" class="absolute top-11 left-1/2 transform -translate-x-1/2 -translate-y-1/2 peer-hover:opacity-100 opacity-0 text-white rounded-lg px-1.5 py-0.5 text-xs bg-primary-dark">Copy</div></div><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div></div>```
sudo apt-get update && apt-get install -y apparmor-utils
```

**Etapa 1: Configuração do Hostname**

<div class="mdx-content relative mt-8 prose prose-gray dark:prose-invert" id="bkmrk-mude-o-hostname-da-m">1. Mude o hostname da máquina para identificá-la no cluster:

<div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="z-10 absolute top-3 right-4"><button aria-label="Copy the contents from the code block" class="h-7 w-7 flex items-center justify-center rounded-md backdrop-blur peer group/copy-button" data-testid="copy-code-button"><svg class="w-4 h-4 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60" fill="none" height="18" viewbox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg></button><div aria-hidden="true" class="absolute top-11 left-1/2 transform -translate-x-1/2 -translate-y-1/2 peer-hover:opacity-100 opacity-0 text-white rounded-lg px-1.5 py-0.5 text-xs bg-primary-dark">Copy</div></div><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div></div>```
hostnamectl set-hostname manager1
```

<div class="mdx-content relative mt-8 prose prose-gray dark:prose-invert" id="bkmrk-edite-o-arquivo%C2%A0%2Fetc"><div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div>2. Edite o arquivo `/etc/hosts` para adicionar o novo nome:

<div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="z-10 absolute top-3 right-4"><button aria-label="Copy the contents from the code block" class="h-7 w-7 flex items-center justify-center rounded-md backdrop-blur peer group/copy-button" data-testid="copy-code-button"><svg class="w-4 h-4 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60" fill="none" height="18" viewbox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg></button><div aria-hidden="true" class="absolute top-11 left-1/2 transform -translate-x-1/2 -translate-y-1/2 peer-hover:opacity-100 opacity-0 text-white rounded-lg px-1.5 py-0.5 text-xs bg-primary-dark">Copy</div></div><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div></div>```
nano /etc/hosts
```

Adicione a linha:

<div class="mdx-content relative mt-8 prose prose-gray dark:prose-invert" id="bkmrk-copy-6"><div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="z-10 absolute top-3 right-4"><button aria-label="Copy the contents from the code block" class="h-7 w-7 flex items-center justify-center rounded-md backdrop-blur peer group/copy-button" data-testid="copy-code-button"><svg class="w-4 h-4 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60" fill="none" height="18" viewbox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg></button><div aria-hidden="true" class="absolute top-11 left-1/2 transform -translate-x-1/2 -translate-y-1/2 peer-hover:opacity-100 opacity-0 text-white rounded-lg px-1.5 py-0.5 text-xs bg-primary-dark">Copy</div></div><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div></div>```
127.0.0.1    manager1
```

<div class="mdx-content relative mt-8 prose prose-gray dark:prose-invert" id="bkmrk-reinicie-o-sistema-p"><div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div>3. Reinicie o sistema para aplicar as alterações:

<div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="z-10 absolute top-3 right-4"><button aria-label="Copy the contents from the code block" class="h-7 w-7 flex items-center justify-center rounded-md backdrop-blur peer group/copy-button" data-testid="copy-code-button"><svg class="w-4 h-4 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60" fill="none" height="18" viewbox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg></button><div aria-hidden="true" class="absolute top-11 left-1/2 transform -translate-x-1/2 -translate-y-1/2 peer-hover:opacity-100 opacity-0 text-white rounded-lg px-1.5 py-0.5 text-xs bg-primary-dark">Copy</div></div><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div></div>```
reboot
```

<div class="mdx-content relative mt-8 prose prose-gray dark:prose-invert" id="bkmrk-verifique-o-hostname"><div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div>4. Verifique o hostname:

<div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="z-10 absolute top-3 right-4"><button aria-label="Copy the contents from the code block" class="h-7 w-7 flex items-center justify-center rounded-md backdrop-blur peer group/copy-button" data-testid="copy-code-button"><svg class="w-4 h-4 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60" fill="none" height="18" viewbox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg></button><div aria-hidden="true" class="absolute top-11 left-1/2 transform -translate-x-1/2 -translate-y-1/2 peer-hover:opacity-100 opacity-0 text-white rounded-lg px-1.5 py-0.5 text-xs bg-primary-dark">Copy</div></div><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div></div>```
hostnamectl
```

**Etapa 2: Instalação do Docker**

Instale o Docker executando:

<div class="mdx-content relative mt-8 prose prose-gray dark:prose-invert" id="bkmrk-copy-7"><div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="z-10 absolute top-3 right-4"><button aria-label="Copy the contents from the code block" class="h-7 w-7 flex items-center justify-center rounded-md backdrop-blur peer group/copy-button" data-testid="copy-code-button"><svg class="w-4 h-4 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60" fill="none" height="18" viewbox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg></button><div aria-hidden="true" class="absolute top-11 left-1/2 transform -translate-x-1/2 -translate-y-1/2 peer-hover:opacity-100 opacity-0 text-white rounded-lg px-1.5 py-0.5 text-xs bg-primary-dark">Copy</div></div><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div></div>```
curl -fsSL https://get.docker.com | bash
```

**Etapa 3: Iniciando o Swarm**

Inicie o Docker Swarm:

<div class="mdx-content relative mt-8 prose prose-gray dark:prose-invert" id="bkmrk-copy-8"><div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="z-10 absolute top-3 right-4"><button aria-label="Copy the contents from the code block" class="h-7 w-7 flex items-center justify-center rounded-md backdrop-blur peer group/copy-button" data-testid="copy-code-button"><svg class="w-4 h-4 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60" fill="none" height="18" viewbox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg></button><div aria-hidden="true" class="absolute top-11 left-1/2 transform -translate-x-1/2 -translate-y-1/2 peer-hover:opacity-100 opacity-0 text-white rounded-lg px-1.5 py-0.5 text-xs bg-primary-dark">Copy</div></div><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div></div>```
docker swarm init --advertise-addr IP_SERVER
```

**Etapa 4: Configuração da Rede do Docker Swarm**

Crie a rede overlay para o Docker Swarm:

<div class="mdx-content relative mt-8 prose prose-gray dark:prose-invert" id="bkmrk-copy-9"><div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="z-10 absolute top-3 right-4"><button aria-label="Copy the contents from the code block" class="h-7 w-7 flex items-center justify-center rounded-md backdrop-blur peer group/copy-button" data-testid="copy-code-button"><svg class="w-4 h-4 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60" fill="none" height="18" viewbox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg></button><div aria-hidden="true" class="absolute top-11 left-1/2 transform -translate-x-1/2 -translate-y-1/2 peer-hover:opacity-100 opacity-0 text-white rounded-lg px-1.5 py-0.5 text-xs bg-primary-dark">Copy</div></div><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div></div>```
docker network create --driver=overlay network_public
```

Anote o comando gerado para registrar os Workers:

<div class="mdx-content relative mt-8 prose prose-gray dark:prose-invert" id="bkmrk-copy-10"><div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="z-10 absolute top-3 right-4"><button aria-label="Copy the contents from the code block" class="h-7 w-7 flex items-center justify-center rounded-md backdrop-blur peer group/copy-button" data-testid="copy-code-button"><svg class="w-4 h-4 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60" fill="none" height="18" viewbox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg></button><div aria-hidden="true" class="absolute top-11 left-1/2 transform -translate-x-1/2 -translate-y-1/2 peer-hover:opacity-100 opacity-0 text-white rounded-lg px-1.5 py-0.5 text-xs bg-primary-dark">Copy</div></div><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div></div>```
docker swarm join --token HASH IP_SERVER:2377
```

<div class="absolute" id="bkmrk-%E2%80%8B-10">[​ <div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg fill="gray" height="12px" viewbox="0 0 576 512" xmlns="http://www.w3.org/2000/svg"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div>](https://doc.evolution-api.com/v2/pt/install/docker#configurando-o-servidor-worker)</div>#### <span class="cursor-pointer">Configurando o Servidor Worker</span>

Se estiver utilizando um servidor da Hetzner, execute:

<div class="mdx-content relative mt-8 prose prose-gray dark:prose-invert" id="bkmrk-copy-11"><div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="z-10 absolute top-3 right-4"><button aria-label="Copy the contents from the code block" class="h-7 w-7 flex items-center justify-center rounded-md backdrop-blur peer group/copy-button" data-testid="copy-code-button"><svg class="w-4 h-4 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60" fill="none" height="18" viewbox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg></button><div aria-hidden="true" class="absolute top-11 left-1/2 transform -translate-x-1/2 -translate-y-1/2 peer-hover:opacity-100 opacity-0 text-white rounded-lg px-1.5 py-0.5 text-xs bg-primary-dark">Copy</div></div><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div></div>```
sudo apt-get update && apt-get install -y apparmor-utils
```

**Etapa 1: Configuração do Hostname**

<div class="mdx-content relative mt-8 prose prose-gray dark:prose-invert" id="bkmrk-mude-o-hostname-da-m-1">1. Mude o hostname da máquina para identificá-la no cluster:

<div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="z-10 absolute top-3 right-4"><button aria-label="Copy the contents from the code block" class="h-7 w-7 flex items-center justify-center rounded-md backdrop-blur peer group/copy-button" data-testid="copy-code-button"><svg class="w-4 h-4 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60" fill="none" height="18" viewbox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg></button><div aria-hidden="true" class="absolute top-11 left-1/2 transform -translate-x-1/2 -translate-y-1/2 peer-hover:opacity-100 opacity-0 text-white rounded-lg px-1.5 py-0.5 text-xs bg-primary-dark">Copy</div></div><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div></div>```
hostnamectl set-hostname worker1
```

<div class="mdx-content relative mt-8 prose prose-gray dark:prose-invert" id="bkmrk-edite-o-arquivo%C2%A0%2Fetc-1"><div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div>2. Edite o arquivo `/etc/hosts` para adicionar o novo nome:

<div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="z-10 absolute top-3 right-4"><button aria-label="Copy the contents from the code block" class="h-7 w-7 flex items-center justify-center rounded-md backdrop-blur peer group/copy-button" data-testid="copy-code-button"><svg class="w-4 h-4 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60" fill="none" height="18" viewbox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg></button><div aria-hidden="true" class="absolute top-11 left-1/2 transform -translate-x-1/2 -translate-y-1/2 peer-hover:opacity-100 opacity-0 text-white rounded-lg px-1.5 py-0.5 text-xs bg-primary-dark">Copy</div></div><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div></div>```
nano /etc/hosts
```

Adicione a linha:

<div class="mdx-content relative mt-8 prose prose-gray dark:prose-invert" id="bkmrk-copy-12"><div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="z-10 absolute top-3 right-4"><button aria-label="Copy the contents from the code block" class="h-7 w-7 flex items-center justify-center rounded-md backdrop-blur peer group/copy-button" data-testid="copy-code-button"><svg class="w-4 h-4 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60" fill="none" height="18" viewbox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg></button><div aria-hidden="true" class="absolute top-11 left-1/2 transform -translate-x-1/2 -translate-y-1/2 peer-hover:opacity-100 opacity-0 text-white rounded-lg px-1.5 py-0.5 text-xs bg-primary-dark">Copy</div></div><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div></div>```
127.0.0.1    worker1
```

<div class="mdx-content relative mt-8 prose prose-gray dark:prose-invert" id="bkmrk-reinicie-o-sistema-p-1"><div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div>3. Reinicie o sistema para aplicar as alterações:

<div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="z-10 absolute top-3 right-4"><button aria-label="Copy the contents from the code block" class="h-7 w-7 flex items-center justify-center rounded-md backdrop-blur peer group/copy-button" data-testid="copy-code-button"><svg class="w-4 h-4 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60" fill="none" height="18" viewbox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg></button><div aria-hidden="true" class="absolute top-11 left-1/2 transform -translate-x-1/2 -translate-y-1/2 peer-hover:opacity-100 opacity-0 text-white rounded-lg px-1.5 py-0.5 text-xs bg-primary-dark">Copy</div></div><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div></div>```
reboot
```

**Etapa 2: Instalação do Docker**

Instale o Docker executando:

<div class="mdx-content relative mt-8 prose prose-gray dark:prose-invert" id="bkmrk-copy-13"><div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="z-10 absolute top-3 right-4"><button aria-label="Copy the contents from the code block" class="h-7 w-7 flex items-center justify-center rounded-md backdrop-blur peer group/copy-button" data-testid="copy-code-button"><svg class="w-4 h-4 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60" fill="none" height="18" viewbox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg></button><div aria-hidden="true" class="absolute top-11 left-1/2 transform -translate-x-1/2 -translate-y-1/2 peer-hover:opacity-100 opacity-0 text-white rounded-lg px-1.5 py-0.5 text-xs bg-primary-dark">Copy</div></div><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div></div>```
curl -fsSL https://get.docker.com | bash
```

**Etapa 3: Adicionar o Worker ao Cluster**

Execute o comando obtido anteriormente para adicionar o Worker ao cluster:

<div class="mdx-content relative mt-8 prose prose-gray dark:prose-invert" id="bkmrk-copy-14"><div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="z-10 absolute top-3 right-4"><button aria-label="Copy the contents from the code block" class="h-7 w-7 flex items-center justify-center rounded-md backdrop-blur peer group/copy-button" data-testid="copy-code-button"><svg class="w-4 h-4 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60" fill="none" height="18" viewbox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg></button><div aria-hidden="true" class="absolute top-11 left-1/2 transform -translate-x-1/2 -translate-y-1/2 peer-hover:opacity-100 opacity-0 text-white rounded-lg px-1.5 py-0.5 text-xs bg-primary-dark">Copy</div></div><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div></div>```
docker swarm join --token HASH IP_SERVER:2377
```

<div class="absolute" id="bkmrk-%E2%80%8B-11">[​ <div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg fill="gray" height="12px" viewbox="0 0 576 512" xmlns="http://www.w3.org/2000/svg"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div>](https://doc.evolution-api.com/v2/pt/install/docker#pr%C3%A9-requisitos-para-a-evolution-api-via-swarm)</div>### <span class="cursor-pointer">Pré-requisitos para a Evolution API via Swarm</span>

<div class="absolute" id="bkmrk-%E2%80%8B-12">[​ <div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg fill="gray" height="12px" viewbox="0 0 576 512" xmlns="http://www.w3.org/2000/svg"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div>](https://doc.evolution-api.com/v2/pt/install/docker#instala%C3%A7%C3%A3o-do-traefik)</div>#### <span class="cursor-pointer">Instalação do Traefik</span>

Para instalar o Traefik no Docker Swarm, siga as instruções abaixo:

<div class="mdx-content relative mt-8 prose prose-gray dark:prose-invert" id="bkmrk-no-servidor-manager%2C">1. No servidor manager, crie um arquivo `traefik.yaml`:

<div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="z-10 absolute top-3 right-4"><button aria-label="Copy the contents from the code block" class="h-7 w-7 flex items-center justify-center rounded-md backdrop-blur peer group/copy-button" data-testid="copy-code-button"><svg class="w-4 h-4 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60" fill="none" height="18" viewbox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg></button><div aria-hidden="true" class="absolute top-11 left-1/2 transform -translate-x-1/2 -translate-y-1/2 peer-hover:opacity-100 opacity-0 text-white rounded-lg px-1.5 py-0.5 text-xs bg-primary-dark">Copy</div></div><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div></div>```
nano traefik.yaml
```

<div class="mdx-content relative mt-8 prose prose-gray dark:prose-invert" id="bkmrk-adicione-o-seguinte-"><div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div>2. Adicione o seguinte conteúdo ao arquivo:

<div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-yaml"><div class="z-10 absolute top-3 right-4"><button aria-label="Copy the contents from the code block" class="h-7 w-7 flex items-center justify-center rounded-md backdrop-blur peer group/copy-button" data-testid="copy-code-button"><svg class="w-4 h-4 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60" fill="none" height="18" viewbox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg></button><div aria-hidden="true" class="absolute top-11 left-1/2 transform -translate-x-1/2 -translate-y-1/2 peer-hover:opacity-100 opacity-0 text-white rounded-lg px-1.5 py-0.5 text-xs bg-primary-dark">Copy</div></div><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div></div>```
version: "3.7"

services:
  traefik:
    image: traefik:2.11.2
    command:
      - "--api.dashboard=true"
      - "--providers.docker.swarmMode=true"
      - "--providers.docker.endpoint=unix:///var/run/docker.sock"
      - "--providers.docker.exposedbydefault=false"
      - "--providers.docker.network=network_public"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.web.http.redirections.entryPoint.to=websecure"
      - "--entrypoints.web.http.redirections.entryPoint.scheme=https"
      - "--entrypoints.web.http.redirections.entrypoint.permanent=true"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.letsencryptresolver.acme.httpchallenge=true"
      - "--certificatesresolvers.letsencryptresolver.acme.httpchallenge.entrypoint=web"
      - "--certificatesresolvers.letsencryptresolver.acme.email=seu@email.com"
      - "--certificatesresolvers.letsencryptresolver.acme.storage=/etc/traefik/letsencrypt/acme.json"
      - "--log.level=DEBUG"
      - "--log.format=common"
      - "--log.filePath=/var/log/traefik/traefik.log"
      - "--accesslog=true"
      - "--accesslog.filepath=/var/log/traefik/access-log"
    deploy:
      placement:
        constraints:
          - node.role == manager
      restart_policy:
        condition: on-failure
        delay: 5s
      labels:
        - "traefik.enable=true"
        - "traefik.http.middlewares.redirect-https.redirectscheme.scheme=https"
        - "traefik.http.middlewares.redirect-https.redirectscheme.permanent=true"
        - "traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)"
        - "traefik.http.routers.http-catchall.entrypoints=web"
        - "traefik.http.routers.http-catchall.middlewares=redirect-https@docker"
        - "traefik.http.routers.http-catchall.priority=1"
    volumes:
      - "/var/run

/docker.sock:/var/run/docker.sock:ro"
      - "vol_certificates:/etc/traefik/letsencrypt"
    ports:
      - target: 80
        published: 80
        mode: host
      - target: 443
        published: 443
        mode: host
    networks:
      - network_public

volumes:
  vol_certificates:
    external: true
    name: volume_swarm_certificates

networks:
  network_public:
    external: true
    name: network_public
```

<div class="mdx-content relative mt-8 prose prose-gray dark:prose-invert" id="bkmrk-execute-o-comando-ab"><div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-yaml"><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div>3. Execute o comando abaixo para fazer o deploy da stack Traefik:

<div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="z-10 absolute top-3 right-4"><button aria-label="Copy the contents from the code block" class="h-7 w-7 flex items-center justify-center rounded-md backdrop-blur peer group/copy-button" data-testid="copy-code-button"><svg class="w-4 h-4 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60" fill="none" height="18" viewbox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg></button><div aria-hidden="true" class="absolute top-11 left-1/2 transform -translate-x-1/2 -translate-y-1/2 peer-hover:opacity-100 opacity-0 text-white rounded-lg px-1.5 py-0.5 text-xs bg-primary-dark">Copy</div></div><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div></div>```
docker stack deploy --prune --resolve-image always -c traefik.yaml traefik
```

<div class="absolute" id="bkmrk-%E2%80%8B-13">[​ <div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg fill="gray" height="12px" viewbox="0 0 576 512" xmlns="http://www.w3.org/2000/svg"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div>](https://doc.evolution-api.com/v2/pt/install/docker#deploy-da-evolution-api-v2)</div>### <span class="cursor-pointer">Deploy da Evolution API v2</span>

Finalmente, para implantar a Evolution API v2 no Docker Swarm, use o arquivo de configuração disponível [aqui](https://github.com/EvolutionAPI/evolution-api/blob/v2.0.0/Docker/swarm/evolution_api_v2.yaml) com o seguinte conteúdo:

<div class="mdx-content relative mt-8 prose prose-gray dark:prose-invert" id="bkmrk-copy-15"><div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-yaml"><div class="z-10 absolute top-3 right-4"><button aria-label="Copy the contents from the code block" class="h-7 w-7 flex items-center justify-center rounded-md backdrop-blur peer group/copy-button" data-testid="copy-code-button"><svg class="w-4 h-4 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60" fill="none" height="18" viewbox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg></button><div aria-hidden="true" class="absolute top-11 left-1/2 transform -translate-x-1/2 -translate-y-1/2 peer-hover:opacity-100 opacity-0 text-white rounded-lg px-1.5 py-0.5 text-xs bg-primary-dark">Copy</div></div><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div></div>```
version: "3.7"

services:
  evolution_v2:
    image: atendai/evolution-api:v2.1.1
    volumes:
      - evolution_instances:/evolution/instances
    networks:
      - network_public
    environment:
      - SERVER_URL=https://evo2.site.com
      - DEL_INSTANCE=false
      - DATABASE_ENABLED=true
      - DATABASE_PROVIDER=postgresql
      - DATABASE_CONNECTION_URI=postgresql://postgres:SENHA@postgres:5432/evolution
      - DATABASE_SAVE_DATA_INSTANCE=true
      - DATABASE_SAVE_DATA_NEW_MESSAGE=true
      - DATABASE_SAVE_MESSAGE_UPDATE=true
      - DATABASE_SAVE_DATA_CONTACTS=true
      - DATABASE_SAVE_DATA_CHATS=true
      - DATABASE_SAVE_DATA_LABELS=true
      - DATABASE_SAVE_DATA_HISTORIC=true
      - DATABASE_CONNECTION_CLIENT_NAME=evolution_v2
      - RABBITMQ_ENABLED=false
      - RABBITMQ_URI=amqp://admin:admin@rabbitmq:5672/default
      - CACHE_REDIS_ENABLED=true
      - CACHE_REDIS_URI=redis://evo_redis:6379/1
      - CACHE_REDIS_PREFIX_KEY=evolution_v2
      - CACHE_REDIS_SAVE_INSTANCES=false
      - CACHE_LOCAL_ENABLED=false
      - S3_ENABLED=true
      - S3_ACCESS_KEY=
      - S3_SECRET_KEY=
      - S3_BUCKET=evolution
      - S3_PORT=443
      - S3_ENDPOINT=files.site.com
      - S3_USE_SSL=true
      - AUTHENTICATION_API_KEY=429683C4C977415CAAFCCE10F7D57E11
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.hostname == evolution-manager
      labels:
        - traefik.enable=true
        - traefik.http.routers.evolution_v2.rule=Host(`evo2.site.com`)
        - traefik.http.routers.evolution_v2.entrypoints=websecure
        - traefik.http.routers.evolution_v2.tls.certresolver=letsencryptresolver
        - traefik.http.routers.evolution_v2.service=evolution_v2
        - traefik.http.services.evolution_v2.loadbalancer.server.port=8080
        - traefik.http.services.evolution_v2.loadbalancer.passHostHeader=true

volumes:
  evolution_instances:
    external: true
    name: evolution_v2_data

networks:
  network_public:
    external: true
    name: network_public
```

Após configurar e salvar o arquivo, faça o deploy da stack com o comando:

<div class="mdx-content relative mt-8 prose prose-gray dark:prose-invert" id="bkmrk-copy-16"><div class="code-block mt-5 mb-8 not-prose rounded-2xl relative group p-0.5 text-gray-950 dark:text-gray-50 codeblock-light border border-gray-950/10 dark:border-white/10 bg-transparent dark:bg-transparent language-bash"><div class="z-10 absolute top-3 right-4"><button aria-label="Copy the contents from the code block" class="h-7 w-7 flex items-center justify-center rounded-md backdrop-blur peer group/copy-button" data-testid="copy-code-button"><svg class="w-4 h-4 text-gray-400 group-hover/copy-button:text-gray-500 dark:text-white/40 dark:group-hover/copy-button:text-white/60" fill="none" height="18" viewbox="0 0 18 18" width="18" xmlns="http://www.w3.org/2000/svg"><path d="M14.25 5.25H7.25C6.14543 5.25 5.25 6.14543 5.25 7.25V14.25C5.25 15.3546 6.14543 16.25 7.25 16.25H14.25C15.3546 16.25 16.25 15.3546 16.25 14.25V7.25C16.25 6.14543 15.3546 5.25 14.25 5.25Z" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path><path d="M2.80103 11.998L1.77203 5.07397C1.61003 3.98097 2.36403 2.96397 3.45603 2.80197L10.38 1.77297C11.313 1.63397 12.19 2.16297 12.528 3.00097" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"></path></svg></button><div aria-hidden="true" class="absolute top-11 left-1/2 transform -translate-x-1/2 -translate-y-1/2 peer-hover:opacity-100 opacity-0 text-white rounded-lg px-1.5 py-0.5 text-xs bg-primary-dark">Copy</div></div><div class="min-w-full max-w-full dark:bg-codeblock rounded-[14px] relative text-sm leading-6 children:!my-0 children:!shadow-none children:!bg-transparent transition-[height] duration-300 ease-in-out overflow-x-auto py-3.5 px-4 h-full [&_*]:ring-0 [&_*]:outline-none [&_*]:focus:ring-0 [&_*]:focus:outline-none [&_pre>code]:pr-[3rem] [&_pre>code>span.line-highlight]:min-w-[calc(100%+3rem)] bg-white overflow-y-hidden scrollbar-thin scrollbar-thumb-rounded scrollbar-thumb-black/15 hover:scrollbar-thumb-black/20 active:scrollbar-thumb-black/20 dark:scrollbar-thumb-white/20 dark:hover:scrollbar-thumb-white/25 dark:active:scrollbar-thumb-white/25" data-component-part="code-block-root" style="box-sizing: border-box; --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-scroll-snap-strictness: proximity; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgba(59,130,246,.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; position: relative; height: auto; min-width: 100%; max-width: 100%; overflow: auto hidden; border-radius: 14px; --tw-bg-opacity: 1; background-color: rgb(11, 12, 14); padding: 0.875rem 1rem; font-size: 0.875rem; line-height: 1.5rem; transition-property: height; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 0.3s; --scrollbar-thumb: hsla(0,0%,100%,.2) !important; --scrollbar-thumb-radius: 0.25rem; animation-duration: 0.3s; animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --scrollbar-thumb-hover: hsla(0,0%,100%,.25) !important; --scrollbar-thumb-active: hsla(0,0%,100%,.25) !important; font-variant-ligatures: none; border: 0px solid rgb(224, 228, 227);" tabindex="-1"><div tabindex="-1">  
</div></div></div></div>```
docker stack deploy --prune --resolve-image always -c evolution_api_v2.yaml evolution_v2
```

<div class="absolute" id="bkmrk-%E2%80%8B-14">[​ <div class="w-6 h-6 rounded-md flex items-center justify-center shadow-sm text-gray-400 dark:text-white/50 dark:bg-background-dark dark:brightness-[1.35] dark:ring-1 dark:hover:brightness-150 bg-white ring-1 ring-gray-400/30 dark:ring-gray-700/25 hover:ring-gray-400/60 dark:hover:ring-white/20"><svg fill="gray" height="12px" viewbox="0 0 576 512" xmlns="http://www.w3.org/2000/svg"><path d="M0 256C0 167.6 71.6 96 160 96h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C98.1 144 48 194.1 48 256s50.1 112 112 112h72c13.3 0 24 10.7 24 24s-10.7 24-24 24H160C71.6 416 0 344.4 0 256zm576 0c0 88.4-71.6 160-160 160H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c61.9 0 112-50.1 112-112s-50.1-112-112-112H344c-13.3 0-24-10.7-24-24s10.7-24 24-24h72c88.4 0 160 71.6 160 160zM184 232H392c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"></path></svg></div>](https://doc.evolution-api.com/v2/pt/install/docker#acessando-a-api-2)</div>### <span class="cursor-pointer">Acessando a API</span>

Abra seu navegador e acesse [https://evo2.site.com](https://evo2.site.com/) para verificar se a Evolution API está operacional.