# EvolutionAPI(Whatsapp) - Ubuntu 22.04

[CLIQUE AQUI PARA](https://www.youtube.com/watch?v=A7mEFak2GRE) assistir o vídeo com o tutorial ou pular pro texto.

[![](https://cdn.hashnode.com/res/hashnode/image/upload/v1726047350267/628ac370-264f-4253-922b-bcd30ec0feb1.png align="center")](https://www.youtube.com/watch?v=A7mEFak2GRE)

### **1 - Atualiza a Lista de Pacotes**

Antes de começar, certifique-se de que sua lista de pacotes está atualizada:

```bash
sudo apt-get update
```

### Instalação e Configuração do PostgreSQL

**2 - Instalar PostgreSQL**

**2.1 - Execute o comando abaixo para instalar o PostgreSQL**

```bash
sudo apt-get install postgresql postgresql-contrib
```

**2.2 - Inicie o serviço com o comando abaixo**

```bash
sudo service postgresql start
```

**2.3 - Execute o comando para criar o banco de dados.**

```bash
sudo -u postgres createdb evolution
```

**2.4 - Conecte-se ao PostgreSQL**

```bash
sudo -u postgres psql
```

**2.5 - Alterar a senha do usuário do PostgreSQL.**

Vamos alterar a senha do usuário `postgres`.

🚨\*\*Anote essa senha, pois você vai usá-la posteriormente!\*\*🚨

```bash
ALTER USER postgres WITH PASSWORD 'senha-do-banco';
```

Para sair do terminal do PostgreSQL, digite:

```bash
\q
```

### **3 -** Instalação e Configuração do Redis

**3.1. Instalar Redis**

O Redis está disponível nos repositórios padrão do Ubuntu. Para instalá-lo, use o seguinte comando:

```bash
sudo apt-get install redis-server
```

**3.2. Verificar o Funcionamento do Redis**

Após a instalação, o serviço Redis deve iniciar automaticamente. Verifique se o Redis está em execução com:

```bash
redis-cli ping
```

Você deve receber um “PONG” como resposta do comando.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1726013108164/8f8d0bad-4130-40c7-84cc-af83dd9bb091.png align="center")

### 4\. Melhorando a segurança

**4.1. Permitir Conexões Locais**

Primeiro, permita conexões de [`localhost`](http://localhost) (127.0.0.1) para as portas 6379(REDIS) e 5432(PostgreSQL):

```bash
sudo ufw allow from 127.0.0.1 to any port 6379
sudo ufw allow from 127.0.0.1 to any port 5432
```

**4.2. Bloquear Acesso Externo**

Bloqueie o acesso externo às portas do Redis e PostgreSQL para evitar conexões indesejadas:

```bash
sudo ufw deny 6379
sudo ufw deny 5432
```

**4.3. Permitir Acesso à Porta 22 (SSH) e 8080**

Certifique-se de permitir o tráfego na porta 22, usada para conexões SSH, e na porta 8080, onde a Evolution API será executada:

```bash
sudo ufw allow 22/tcp
sudo ufw allow 8080
```

**4.4. Ativar o Firewall (UFW)**

Ative o `ufw` para aplicar as regras de segurança configuradas:

```bash
sudo ufw enable
```

Responda `y` caso a pergunta abaixo apareça:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1726016738177/91ab96b6-87cb-41cc-bf95-b77a3fedc3a8.png align="center")

**4.5. Verificar as Regras Atuais**

Após configurar as regras, verifique se elas foram aplicadas corretamente:

```bash
sudo ufw status verbose
```

Você verá algo como mostrado abaixo:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1726016801558/3785c099-2255-4956-937b-17b5dbb68fe7.png align="center")

## 5\. Instalação do Node.js com NVM

**5.1. Instalar o NVM**

Instale o Node Version Manager (NVM) para gerenciar versões do Node.js:

```bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.2/install.sh | bash
```

**5.2. Carregar o NVM no Ambiente**

Carregue o NVM no ambiente com o comando abaixo:

```bash
source ~/.bashrc
```

**5.3. Instalar e Usar o Node.js**

Agora, instale e use a versão 20.10.0 do Node.js:

```bash
nvm install v22.14.0 && nvm use v22.14.0
```

**5.4. Verificar Instalação do NVM**

Confirme que o NVM foi instalado com sucesso:

```bash
command -v nvm
```

## 6\. Instalação e Configuração da Evolution API

**6.1. Clonar o Repositório da API**

Clone o repositório oficial da Evolution API v2 a partir da branch correta:

```bash
git clone --branch 2.2.3 https://github.com/EvolutionAPI/evolution-api.git
```

**6.2. Instalar Dependências**

Acesse o diretório do projeto e instale as dependências necessárias:

```bash
cd evolution-api && npm install
```

## 7\. Configuração das Variáveis de Ambiente

**7.1. Copiar Arquivo de Exemplo** `.env`

Copie o arquivo de exemplo `.env.example` para `.env`:

```bash
cp ./.env.example ./.env
```

**7.2. Editar o Arquivo** `.env`

Edite o arquivo `.env` e substitua os valores conforme necessário. As variáveis mais importantes são as de conexão com o banco de dados:

```bash
nano ./.env
```

Altere os seguintes valores:

* `DB_USER`: `postgres`
    
* `DB_PASS`: **a senha do banco que você definiu anteriormente**
    

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1726017105263/58e5de58-2b31-4914-b815-0ef24fe77718.png align="center")

Você também 🚨**PRECISA MUDAR**🚨 e anotar a **API Key Global**, pois você precisará dela para acessar a plataforma. *<mark>A instalação padrão vem com essa chave, ou seja, é um risco a sua segurança.</mark>*

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1726018339960/328a3191-1217-4c0a-8434-a06a4a6ebd3e.png align="left")

([documentação](https://doc.evolution-api.com/v2/pt/env) do arquivo .env aqui)

## 8\. Geração e Deploy do Banco de Dados

Após configurar o ambiente, você precisará realizar a geração dos arquivos do cliente Prisma e o deploy das migrations no banco de dados. Utilize os comandos abaixo.

**8.1. Gerar Arquivos Prisma**

Gerar os arquivos do cliente Prisma:

```bash
npm run db:generate
```

**8.2. Deploy das Migrations**

Realize o deploy das migrations para configurar o banco de dados:

```bash
npm run db:deploy
```

## 9\. Inicializando a Evolution API

Após todas as configurações, inicie a Evolution API:

```bash
npm run build && npm run start:prod
```

## 10\. Gerenciamento com PM2

**10.1. Instalar PM2**

Para gerenciar a API, instale o PM2:

```bash
npm install pm2 -g
```

**10.2. Iniciar a Evolution API com PM2**

Inicie a API com PM2 e configure o PM2 para inicializar automaticamente:

```bash
pm2 start 'npm run start:prod' --name ApiEvolution &&
pm2 startup &&
pm2 save --force
```

## 11\. Verificar a API

Para verificar se a API está em execução, acesse o IP do servidor na porta 8080 (http://ip-do-servidor:8080). Você deve receber a seguinte resposta:

```json
{
  "status": 200,
  "message": "Welcome to the Evolution API, it is working!",
  "version": "2.0.10",
  "clientName": "evolution01",
  "manager": "https://evo2.site.com/manager",
  "documentation": "https://doc.evolution-api.com"
}
```

Acesse a interface de gerenciamento em:

http://&lt;IP-DO-SEU-SERVIDOR&gt;:8080/manager/login

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1726018214188/628fc888-a123-40a3-87b7-f0c912b4c5d9.png align="center")

No campo `API Key Global`, informe a chave que você configurou no arquivo `.env`.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1726018339960/328a3191-1217-4c0a-8434-a06a4a6ebd3e.png align="center")

## 12\. Finalizando

Tudo pronto! Agora você pode acessar a Evolution API e gerenciá-la diretamente pela interface. Não esqueça de salvar as configurações e realizar testes para garantir que tudo esteja funcionando corretamente.

### Te ajudei?

Me paga uma cerveja! 🍺😁

PIX QrCode

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1726095550809/4e01f0a4-4231-47ac-9baf-7c1c7d263fb4.png align="left")
