---------------------------------------------------------------------------------------------------------------

Tutorial Hospedagem Linux

---------------------------------------------------------------------------------------------------------------

- Instalação NPM com versão 18.13.0

sudo apt update

sudo apt install npm

sudo npm install -g n

sudo n 18.13.0

---------------------------------------------------------------------------------------------------------------

- Instalação nodeJs

sudo apt install nodejs -y global

---------------------------------------------------------------------------------------------------------------

- Instalação CURL + YARN

sudo apt update

sudo apt install curl -y global

curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -

echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

sudo apt install yarn -y global

---------------------------------------------------------------------------------------------------------------

- Instalação MongoDb

wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list

echo "deb http://security.ubuntu.com/ubuntu focal-security main" | sudo tee /etc/apt/sources.list.d/focal-security.list

sudo apt-get update

sudo apt-get install libssl1.1 -y global

sudo rm /etc/apt/sources.list.d/focal-security.list

sudo apt install mongodb-org -y global

sudo systemctl start mongod

sudo systemctl status mongod

sudo systemctl enable mongod

---------------------------------------------------------------------------------------------------------------

- Instalação Git

sudo apt install git-all -y global

---------------------------------------------------------------------------------------------------------------

- Download do Código Fonte

git clone https://github.com/salman0ansari/whatsapp-api-node...

---------------------------------------------------------------------------------------------------------------

- Instalação e Configuração do Código Fonte

cd whatsapp-api-nodejs

sudo apt install yarn -y global

yarn install

cp .env.example src/.env

cd src

sudo nano .env

Alterar o token para o token desejado em TOKEN

Alterar porta para a porta desejada em PORT e APP_URL

Alterar MONGODB_ENABLED para true

Ctrl + S - Para salvar

Ctrl + X - Para sair

cd config

sudo nano config.js

Acrescentar essas duas linhas no começo do texto (copiar e colar com os botões do mouse)

//Port number

const dotenv = require('dotenv')

dotenv.config()

Ctrl + S - Para salvar

Ctrl + X - Para sair

---------------------------------------------------------------------------------------------------------------

- Instalação do PM2 para rodar o projeto como um serviço (sem precisar estar com o terminal ligado)

cd ..

sudo npm install pm2 -g

pm2 start server.js

pm2 startup systemd

sudo env PATH=$PATH:/usr/local/bin /usr/local/lib/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu

---------------------------------------------------------------------------------------------------------------

- Liberar as portas de tráfego na Azure (passo a passo no vídeo)

---------------------------------------------------------------------------------------------------------------

- Liberar as portas de tráfego no Ubuntu

sudo iptables -I INPUT -p tcp --dport 3000 -j ACCEPT

sudo iptables -I INPUT -p tcp --dport 3001 -j ACCEPT 

sudo iptables -nL |grep 3000

sudo iptables -nL |grep 3001

---------------------------------------------------------------------------------------------------------------

- Reinicializar instância na Azure (passo a passo no vídeo)

---------------------------------------------------------------------------------------------------------------

Após reiniciar, ir até a pasta whatsapp-api-nodejs/src e rodar o comando pm2 start server.js

OBS: Todas as vezes que precisar reiniciar, será necessário rodar esse comando.