NVM
Evolution API pode ser facilmente instalado usando o Node Version Manager (NVM). Siga estas etapas para configurar seu ambiente e iniciar a Evolution API em seu servidor.
Instalar NVM
Primeiro, baixe e instale o Node.js. Você pode fazer isso executando os seguintes comandos:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
Agora apenas aponte os diretórios do NVM e instale o node:
# Carrege a fonte do bash para o ambiente
source ~/.bashrc
# Diretórios
export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # Isso carrega o nvm
# Instala o node:
nvm install v20.10.0 && nvm use v20.10.0
Confirme que o NVM foi instalado com sucesso:
command -v nvm
Se você ainda não configurou, também pode configurar o fuso horário do seu servidor privado com o seguinte comando:
dpkg-reconfigure tzdata
Clone o repositório oficial do Github para seu servidor privado.
git clone https://github.com/EvolutionAPI/evolution-api.git
Em seguida, acesse a pasta onde o projeto está
cd evolution-api
npm install
Agora vamos copiar o arquivo env.yml
com as configurações que você precisa editar.
cp src/dev-env.yml src/env.yml
nano src/env.yml
Este comando cria uma cópia do arquivo de ambiente padrão.
A seguir, abra o arquivo env.yml em um editor de texto para inserir suas configurações de configuração. Você pode usar o nano, um editor de texto da linha de comando, para este propósito:
nano src/env.yml
No editor nano, navegue pelo arquivo e substitua os valores padrão pelas suas configurações específicas. Isso pode incluir strings de conexão de banco de dados, chaves de API, portas do servidor, etc.
Acesse a seção de variáveis de ambiente para instruções detalhadas sobre como configurar seu arquivo env.yml
.
Para iniciar a Evolution API, use o seguinte comando:
npm run build
npm run start:prod
Instalar e Configurar o PM2
Use o PM2 para instalar o PM2 e iniciar o gerenciador para o processo da API:
npm install pm2 -g
pm2 start 'npm run start:prod' --name ApiEvolution
pm2 startup
pm2 save --force
Opcional: Você pode precisar alocar mais memória para o PM2, especialmente se o seu servidor tiver capacidade:
pm2 start 'npm run start:prod' --name ApiEvolution -- start --node-args="--max-old-space-size=4096" --max-memory-restart 4G
No exemplo acima, é assumido que seu VPS tem pelo menos 4GB de RAM disponível exclusivamente para a Evolution API.
A memória disponível pode variar, recomendamos pelo menos 1GB para executar a Evolution.
Se você quiser ter certeza de que a API está em execução, basta usar seu navegador para acessar http://localhost:8080. Esta deve ser a resposta do seu navegador:
{
"status": 200,
"message": "Bem-vindo à Evolution API, ela está funcionando!",
"version": "1.x.x",
"documentation": "http://localhost:8080/docs"
}
Facilite sua vida com a extensão JSON Formatter no Google Chrome ou Microsoft Edge.
A EvolutionAPI possui uma documentação de ponto de extremidade Swagger integrada, que você pode usar para ver todos os pontos de extremidade possíveis e testar as solicitações acessando http://localhost:8080/docs
.
Configuração do Nginx
Primeiro, vamos instalar, iniciar, habilitar e testar o serviço Nginx em seu servidor privado.
apt-get install -y nginx
systemctl start nginx
systemctl enable nginx
systemctl status nginx
Se a informação “Ativo: ativo (em execução)” aparecer em verde, significa que o Nginx está em execução e você pode prosseguir para a próxima etapa.
Remover Configuração Padrão do Nginx
Primeiro, remova o arquivo do site padrão que vem habilitado com o Nginx:
rm /etc/nginx/sites-enabled/default
Criar um novo arquivo de bloco do servidor no diretório
nano /etc/nginx/conf.d/default.conf
Em seguida, cole a configuração do Nginx no arquivo default.conf
:
server {
listen 80;
listen [::]:80;
server_name _;
root /var/www/html/;
index index.php index.html index.htm index.nginx-debian.html;
location / {
try_files $uri $uri/ /index.php;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
include snippets/fastcgi-php.conf;
}
# Um longo tempo de cache do navegador pode acelerar visitas repetidas à sua página
location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {
access_log off;
log_not_found off;
expires 360d;
}
# desativar acesso a arquivos ocultos
location ~ /\.ht {
access_log off;
log_not_found off;
deny all;
}
}
Após fazer alterações nas configurações do Nginx, é essencial recarregar o serviço Nginx. Isso garante que quaisquer modificações que você fez sejam aplicadas e se tornem eficazes.
Execute o seguinte comando no terminal para recarregar o Nginx:
systemctl reload nginx
Faça o usuário nginx ser o proprietário do diretório da web, por padrão, ele é de propriedade do usuário root:
chown www-data:www-data /usr/share/nginx/html -R
Agora, crie um Virtual Host apontando para seu subdomínio editando o arquivo api
:
cd ~
nano /etc/nginx/sites-available/api
Em seguida, cole a configuração do Nginx no arquivo api
:
server {
server_name substitua-isso-pelo-seu-domínio-legal.com;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_cache_bypass $http_upgrade;
}
}
Crie um link simbólico entre os arquivos api
e sites-enabled
:
ln -s /etc/nginx/sites-available/api /etc/nginx/sites-enabled
Em seguida, valide a configuração do Nginx para o subdomínio:
nginx -t
Esta mensagem deve aparecer no seu terminal se tudo tiver sido configurado corretamente: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Recarregue o Nginx para que as alterações se tornem efetivas.
systemctl reload nginx
Instalar o Certbot para o Certificado SSL
Para proteger sua Evolution API com um certificado SSL, você pode usar o Certbot. Instale o Certbot usando o seguinte comando:
snap install --classic certbot
Certificar o subdomínio da API
certbot --nginx -d substitua-isso-pelo-seu-domínio-legal.com
Será perguntado se você deseja inserir um email para receber notificações quando o certificado gerado estiver perto da data de expiração.
Se a certificação for bem-sucedida, ao final do processo será exibida uma linha com a seguinte mensagem:
“Congratulations! You have successfully enabled HTTPS”