A primeira versão da Evolution Go foi liberada.
Documentação: https://docs.evolutionfoundation.com.br/evolution-go
Live de apresentação: https://www.youtube.com/watch?v=OC5TTN-r7Qw
Neste guia, vou mostrar uma instalação usando Portainer, Traefik e PostgreSQL.
O ambiente que utilizei foi:
- VPS Magalu Cloud
- Plano BV2-2-10
- 2 vCPU
- 2 GB de RAM
- 10 GB de disco
- Ubuntu 22.04
- Região br-se1
A proposta é simples: subir tudo com Docker Swarm via Portainer, com roteamento feito pelo Traefik.
Apesar de eu estar usando uma VPS da Magalu Cloud, este passo a passo deve funcionar em praticamente qualquer VPS Linux baseada em Debian ou derivados.
Pré-requisitos
Antes de começar, garanta que você já tenha:
- uma VPS Linux ativa
- um domínio apontando para o IP da VPS
- acesso root ao servidor
Instalando Portainer e Traefik com SetupOrion
Ao acessar sua VPS, vamos utilizar o SetupOrion para instalar o Portainer e o Traefik.
Site: https://oriondesign.art.br/
Para baixar e executar o script, utilize o usuário root.
O setup do Portainer e do Traefik vai solicitar algumas informações, entre elas o domínio do Portainer, que já deve estar configurado, por exemplo via Cloudflare. Também será solicitado o nome da rede interna. Neste exemplo, usamos network_internal.
O instalador é bem direto, e a primeira opção já instala o Portainer e o Traefik.
Importante:
Configure o domínio antes de iniciar a instalação, para evitar problemas com roteamento e emissão de certificado.
Estrutura da instalação
Neste tutorial, vamos subir duas stacks no Portainer:
- postgres
- evolution-go
A stack do PostgreSQL será usada para persistência de dados, e a stack da Evolution Go será exposta pelo Traefik.
Stack do PostgreSQL
Crie uma stack no Portainer com o conteúdo abaixo.
services:
postgres:
image: postgres:15
command: >
postgres
-c max_connections=500
-c shared_buffers=512MB
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- network_internal
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=SUA_SENHA_FORTE_AQUI
- TZ=America/Sao_Paulo
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
resources:
limits:
cpus: "1"
memory: 1024M
volumes:
postgres_data:
name: postgres_data
networks:
network_internal:
external: true
name: network_internal
Observações sobre a stack do PostgreSQL
- Troque SUA_SENHA_FORTE_AQUI por uma senha real e forte.
- O limite de memória foi definido em 1024M. Como a VPS tem apenas 2 GB de RAM, esse ambiente é enxuto. Funciona, mas não sobra muito recurso para crescer.
- O shared_buffers=512MB é um valor aceitável para um ambiente pequeno, mas pode ser ajustado depois conforme uso real.
Stack da Evolution Go
Agora crie outra stack no Portainer para a Evolution Go.
services:
evolution-go:
image: evoapicloud/evolution-go:latest
volumes:
- evolution_instances:/evolution/instances
networks:
- network_internal
environment:
- SERVER_PORT=8080
- CLIENT_NAME=EVOGO
- GLOBAL_API_KEY=SUA_GLOBAL_API_KEY_AQUI
- POSTGRES_AUTH_DB=postgresql://postgres:SUA_SENHA_FORTE_AQUI@postgres:5432/evogo_auth?sslmode=disable
- POSTGRES_USERS_DB=postgresql://postgres:SUA_SENHA_FORTE_AQUI@postgres:5432/evogo_users?sslmode=disable
- DATABASE_SAVE_MESSAGES=false
- WADEBUG=INFO
- LOGTYPE=console
deploy:
mode: replicated
replicas: 1
placement:
constraints:
- node.role == manager
labels:
- traefik.enable=true
- traefik.http.routers.evolution.rule=Host(`seu-dominio.com.br`)
- traefik.http.routers.evolution.entrypoints=websecure
- traefik.http.routers.evolution.priority=1
- traefik.http.routers.evolution.tls.certresolver=letsencryptresolver
- traefik.http.routers.evolution.service=evolution
- traefik.http.services.evolution.loadbalancer.server.port=8080
volumes:
evolution_instances:
name: evolution_instances
networks:
network_internal:
external: true
name: network_internal
O que você precisa alterar
Antes de subir essa stack, ajuste estes pontos:
- SUA_GLOBAL_API_KEY_AQUI
- SUA_SENHA_FORTE_AQUI
- seu-dominio.com.br
Observações importantes
- Senha do PostgreSQL
A senha usada em POSTGRES_PASSWORD deve ser exatamente a mesma usada nas variáveis:
POSTGRES_AUTH_DBPOSTGRES_USERS_DB
Se isso não bater, a aplicação não conseguirá abrir conexão com o banco.
2. Bancos utilizados
A Evolution Go foi configurada aqui para usar dois bancos:
evogo_authevogo_users
A Evolution Go cria esses bancos.
3. API Key global
A GLOBAL_API_KEYé sensível. Não publique essa chave em prints, repositórios ou posts públicos.
4. Domínio
Na label do Traefik:
- traefik.http.routers.evolution.rule=Host(`seu-dominio.com.br`)
troque pelo domínio real que apontará para sua Evolution Go.
Top comments (0)