# O Grande Combo

Chegamos ao momento da verdade. Temos um servidor Oracle (gratuito), temos memória Swap (para não travar) e temos um Túnel seguro. Agora, vamos instalar os softwares que vão realmente trabalhar para nós.

Se fôssemos instalar o [**n8n**](https://n8n.io/) e a [**Evolution API**](https://doc.evolution-api.com/v2/pt/get-started/introduction) do jeito "antigo", teríamos que baixar arquivos, instalar dependências do Node.js, configurar banco de dados na mão... um pesadelo.

Mas como estamos usando [**Docker**](https://www.docker.com/), vamos usar a estratégia do "Combo" com o **Docker Compose**.

**1\. A Receita do Bolo (O Arquivo Mágico)**

O Docker Compose permite escrever uma "receita" num arquivo de texto. Nós dizemos: "Quero um banco [Postgres](https://www.postgresql.org/), um cache [Redis](https://redis.io/), a API do WhatsApp e o n8n. E quero que todos conversem entre si."

Acesse a pasta do seu projeto (`cd ~/n8n`) e edite o arquivo (`nano docker-compose.yml`). Apague o que tiver lá e cole esta **Stack Completa**:

YAML

```bash
services:
  # 1. Banco de Dados (Postgres para Evolution)
  postgres:
    image: postgres:15-alpine
    restart: always
    environment:
      POSTGRES_USER: evolution
      POSTGRES_PASSWORD: evolution_password
      POSTGRES_DB: evolution
    volumes:
      - evolution_db:/var/lib/postgresql/data
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U evolution"]
      interval: 5s
      timeout: 5s
      retries: 5

  # 2. Cache (Redis para Evolution)
  redis:
    image: redis:alpine
    restart: always
    command: ["redis-server", "--appendonly", "no"]

  # 3. Evolution API v2 (O WhatsApp)
  evolution:
    image: atendai/evolution-api:v2.2.2
    restart: always
    ports:
      - "8080:8080"
    environment:
      - SERVER_URL=https://api.SEUDOMINIO.com.br
      - AUTHENTICATION_API_KEY=[SUA-CHAVE-APY-VAI-AQUI]
      - DATABASE_ENABLED=true
      - DATABASE_PROVIDER=postgresql
      - DATABASE_CONNECTION_URI=postgresql://evolution:evolution_password@postgres:5432/evolution
      - CACHE_REDIS_ENABLED=true
      - CACHE_REDIS_URI=redis://redis:6379/0
      - DEL_INSTANCE=false
      # Truque para evitar desconexão do WhatsApp Web
      - CONFIG_SESSION_PHONE_VERSION=2.3000.1019430043
    depends_on:
      postgres:
        condition: service_healthy
      redis:
        condition: service_started

  # 4. n8n (A Automação)
  n8n:
    image: docker.n8n.io/n8nio/n8n:latest
    restart: always
    ports:
      - "5678:5678"
    environment:
      - N8N_HOST=n8n.SEUDOMINIO.com.br
      - WEBHOOK_URL=https://n8n.SEUDOMINIO.com.br/
      - GENERIC_TIMEZONE=America/Sao_Paulo
      - TZ=America/Sao_Paulo
      - N8N_SECURE_COOKIE=false
    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  n8n_data:
  evolution_db:
```

**2\. O Segredo da Integração (Networking)**

A mágica acontece na rede interna do Docker. Quando você for conectar o n8n na Evolution API, **não use** o endereço externo ([`https://api`](https://api)`...`). Use o endereço interno da rede Docker:

👉 **URL:** [`http://evolution:8080`](http://evolution:8080)

Isso faz com que o n8n converse diretamente com o container do WhatsApp via cabo de rede virtual, sem sair para a internet. É mais seguro, instantâneo e não passa pelo firewall.

**3\. O Comando de Lançamento**

Depois de salvar o arquivo (`Ctrl+O`, `Ctrl+X`), a mágica acontece com apenas três palavras no terminal:

Bash

```bash
docker compose up -d
```

O servidor vai baixar as imagens, criar os bancos de dados e conectar tudo. Em cerca de 2 minutos, você terá uma infraestrutura de nível empresarial rodando na sua máquina gratuita.

Na quinta-feira, vamos para o teste final: fazer o primeiro envio de mensagem!
