Como instalar a EvoAPI no Portainer com Docker Swarm

Passo 1

Antes de começarmos a configuração da Evolution API V2.3.0, é essencial garantir um desempenho ótimo e tempo de resposta rápido. Recomendamos contratar um servidor VPS, de preferência localizado no Brasil, para otimizar a experiência. Abaixo, fornecemos um link para contratação, juntamente com nosso suporte para auxiliá-lo durante o processo.

Pré-requisitos:

Passo 2

Configurando a Stack da Evolution API Versão 2.0

Antes de subir sua stack é preciso criar um banco de dados no Postgres, conforme o passa-a-passo logo abaixo:

  1.  Acesse a Stack do Postgres
Capa-Instalação-Portainer-Criando-Banco-de-Dados-Chatwoot

2. Acesse o terminal do postgres:

  • Em User: Em vez de “root” acesse com “postgres”
  • Dentro do terminal digite os comandos abaixo:
				
					psql
				
			
				
					CREATE DATABASE evoai;
				
			

3. Configure e faça upload sua Stack.

Clique em Stack no menu lateral e depois em + Add Stack no menu superior do lado direito.

Subindo-Stack-Portainer-Traefik
Use o link abaixo para gerar a senha de 32 caracteres conforme mencionado no vídeo.
				
					version: "3.8"

services:
  evoai:
    image: evoapicloud/evo-ai:homolog
    volumes:
      - evoai_data:/evoai/data
    networks:
      - traefik_public
    environment:
      - API_TITLE=Evo API
      - API_DESCRIPTION=API
      - API_VERSION=1.0.0
      - API_URL=https://apievo.digitalinterativo.com.br
      - ORGANIZATION_NAME=Evo AI
      - ORGANIZATION_URL=https://apievo.digitalinterativo.com.br
      - POSTGRES_CONNECTION_STRING=postgresql://postgres:suasenha@postgresevoai:5432/evoai
      - REDIS_HOST=redis
      - REDIS_PORT=6379
      - REDIS_PASSWORD=
      - REDIS_SSL=false
      - REDIS_KEY_PREFIX=evoai
      - REDIS_TTL=3600
      - TOOLS_CACHE_TTL=3600
      - JWT_SECRET_KEY=da6199061fda4ebefdb7e5a47ccdf977 #Length of Hex Numbers 32
      - JWT_ALGORITHM=HS256
      - JWT_EXPIRATION_TIME=3600
      - ENCRYPTION_KEY=Sucesso2024michelmcsrRwqH8AA2Jt9ZoULqcjfWV0= #Length of Hex Numbers 42
      - SECRET_KEY=Sucesso2024michelmcsrRwqH8AA2Jt9ZoULqcjfWV0= #Length of Hex Numbers 42
      - PYTHONPATH=/app/src
      - LOG_LEVEL=INFO
      - HOST=0.0.0.0
      - PORT=8000
      - DEBUG=false
      - ADMIN_EMAIL=seuemail@gmail.com
      - ADMIN_INITIAL_PASSWORD=suasenha
      - DEMO_EMAIL=seuemail@gmail.com
      - DEMO_PASSWORD=sucesso2025
      - DEMO_CLIENT_NAME=DemoClient
      - EMAIL_PROVIDER=smtp
      - SMTP_HOST=smtp.gmail.com
      - SMTP_FROM=seuemail@gmail.com
      - SMTP_USER=seuemail@gmail.com
      - SMTP_PASSWORD=senhapp
      - SMTP_PORT=587
      - SMTP_USE_TLS=true
      - SMTP_USE_SSL=false

    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      labels:
        - traefik.enable=true
        - traefik.docker.network=traefik_public
        - traefik.http.routers.evoai.rule=Host(`apievo.digitalinterativo.com.br`)
        - traefik.http.services.evoai.loadbalancer.server.port=8000
        - traefik.http.routers.evoai.service=evoai
        - traefik.http.routers.evoai.tls.certresolver=le
        - traefik.http.routers.evoai.entrypoints=websecure
        - traefik.http.routers.evoai.tls=true

  evoaifront:
    image: evoapicloud/evolution-api:v2.3.0
    networks:
      - traefik_public
    environment:
      - NODE_ENV=production
      - PORT=3000
      - NEXT_PUBLIC_API_URL=https://apievo.digitalinterativo.com.br
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      labels:
        - traefik.enable=true
        - traefik.docker.network=traefik_public
        - traefik.http.routers.evoaifront.rule=Host(`frontevo.digitalinterativo.com.br`)
        - traefik.http.services.evoaifront.loadbalancer.server.port=3000
        - traefik.http.routers.evoaifront.service=evoaifront
        - traefik.http.routers.evoaifront.tls.certresolver=le
        - traefik.http.routers.evoaifront.entrypoints=websecure
        - traefik.http.routers.evoaifront.tls=true

  postgresevoai:
    image: pgvector/pgvector:pg16
    environment:
      - POSTGRES_PASSWORD=suasenha
      - POSTGRES_DB=evoai
      - TZ=America/Sao_Paulo
    networks:
      - traefik_public
    volumes:
      - postgres_dataevoai:/var/lib/postgresql/data
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints:
          - node.role == manager
      resources:
        limits:
          cpus: "1"
          memory: 3072M

networks:
  traefik_public:
    external: true

volumes:
  evoai_data:
    external: true
    name: evoai_data
  postgres_dataevoai:
    external: true
    name: postgres_dataevoai

				
			

Gostou do conteúdo? Quer apoiar nosso trabalho?

Você pode fazer uma doação e nos ajudar a continuar criando conteúdo de qualidade. Acesse o link para ver as formas de pagamento disponíveis: https://www.asaas.com/c/io73sms6maiim7ud

Chave Pix: (15) 99855-8323

Share the Post:

Post Relacionados