A Evolution API expõe o WhatsApp como uma API HTTP e é o par mais comum do n8n nas VPS da LuraHosting. Requisitos: [Docker](/hc/vps/articles/docker-e-portainer-na-vps), um subdomínio [apontado](/hc/vps/articles/como-apontar-seu-dominio-para-a-vps) (ex.: `evo.seudominio.com`) e, de preferência, 4 GB de RAM se for dividir com o n8n.

Se já tem o Traefik do [guia do n8n](/hc/vps/articles/como-instalar-o-n8n-na-vps-com-docker), reaproveite; abaixo o Compose completo para começar do zero.

## 1. Compose

```
mkdir -p /opt/evolution && cd /opt/evolution
nano docker-compose.yml
```

```yaml
services:
  traefik:
    image: traefik:v3
    command:
      - --providers.docker=true
      - --providers.docker.exposedbydefault=false
      - --entrypoints.web.address=:80
      - --entrypoints.websecure.address=:443
      - --entrypoints.web.http.redirections.entrypoint.to=websecure
      - --certificatesresolvers.le.acme.tlschallenge=true
      - --certificatesresolvers.le.acme.email=seu@email.com
      - --certificatesresolvers.le.acme.storage=/letsencrypt/acme.json
    ports: ["80:80", "443:443"]
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - traefik_le:/letsencrypt
    restart: unless-stopped

  postgres:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: evolution
      POSTGRES_USER: evolution
      POSTGRES_PASSWORD: TROQUE-ESTA-SENHA
    volumes: ["pg_data:/var/lib/postgresql/data"]
    restart: unless-stopped

  redis:
    image: redis:7-alpine
    command: redis-server --appendonly yes
    volumes: ["redis_data:/data"]
    restart: unless-stopped

  evolution:
    image: evoapicloud/evolution-api:latest
    environment:
      SERVER_URL: https://evo.seudominio.com
      AUTHENTICATION_API_KEY: TROQUE-POR-UMA-CHAVE-LONGA
      DATABASE_ENABLED: "true"
      DATABASE_PROVIDER: postgresql
      DATABASE_CONNECTION_URI: postgresql://evolution:TROQUE-ESTA-SENHA@postgres:5432/evolution
      CACHE_REDIS_ENABLED: "true"
      CACHE_REDIS_URI: redis://redis:6379/1
      LANGUAGE: pt-BR
    volumes: ["evo_instances:/evolution/instances"]
    labels:
      - traefik.enable=true
      - traefik.http.routers.evo.rule=Host(`evo.seudominio.com`)
      - traefik.http.routers.evo.entrypoints=websecure
      - traefik.http.routers.evo.tls.certresolver=le
      - traefik.http.services.evo.loadbalancer.server.port=8080
    depends_on: [postgres, redis]
    restart: unless-stopped

volumes:
  pg_data:
  redis_data:
  evo_instances:
  traefik_le:
```

```
docker compose up -d && docker compose logs -f evolution
```

## 2. Conectar um número

1. Abra `https://evo.seudominio.com/manager` e entre com a `AUTHENTICATION_API_KEY`.
2. **Criar instância**, dê um nome e clique em **Conectar**: aparece o QR code.
3. No celular: WhatsApp → Dispositivos conectados → Conectar dispositivo → leia o QR.

Teste de envio:

```
curl -X POST https://evo.seudominio.com/message/sendText/NOME-DA-INSTANCIA \
  -H "apikey: SUA-CHAVE" -H "Content-Type: application/json" \
  -d '{"number":"5511999999999","text":"Teste da VPS"}'
```

## 3. Integrar com o n8n

Se o n8n roda na **mesma VPS** e na mesma rede Docker, use `http://evolution:8080` como URL interna e a API key. Se estiver em outro lugar, use a URL pública. No n8n, o nó "Evolution API" (community) ou nós HTTP Request resolvem; webhooks de mensagens recebidas são configurados por instância no manager (URL do webhook do n8n).

## 4. Cuidados

- Nunca deixe a instalação sem `AUTHENTICATION_API_KEY` forte: a API controla o seu WhatsApp.
- Faça backup dos volumes `pg_data` e `evo_instances` ([backup automático](/hc/vps/articles/backup-automatico-da-vps-para-o-object-storage)); perder `evo_instances` desconecta os números.
- Envio em massa/spam pode banir o número. Use com moderação e respeite as regras do WhatsApp.
- Atualizar: `docker compose pull && docker compose up -d`.
