- Antes de começar a instalação é necessário ter criado antecipadamente os subdomínios e já estarem apontados para o IP da VPS.
- Feito ubuntu 20
- Nesse modelo vamos usar docker porque versão Postgresql do repositorio UBUNTU 20 ta dando erro com izing
- Senha usada 123@mudar
- Dominio Frontend: izing.seusite.com.br
- Dominio backend: backend.seusite.com.br
================================================
- Alterando para root
sudo su root
- Setar Time Zone para São Paulo e atualizar sistema
timedatectl set-timezone America/Sao_Paulo && apt update && apt upgrade -y
- Reiniciar para atualizar kernel
reboot
- Apos reniciar conectar no servidor novamente - Alterando para root
sudo su root
- Intalar pacotes necessários
apt install -y ffmpeg fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst fonts-freefont-ttf libxss1 apt-transport-https ca-certificates software-properties-common curl libgbm-dev wget unzip fontconfig locales gconf-service libasound2 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgcc1 libgconf-2-4 libgdk-pixbuf2.0-0 libglib2.0-0 libgtk-3-0 libnspr4 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 ca-certificates fonts-liberation libappindicator1 libnss3 lsb-release xdg-utils python2-minimal build-essential libxshmfence-dev nginx
- Adicionar repositorio Docker
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
- Instalar docker
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- limpar pacotes não são mais usados
apt autoremove -y
- Instalar POSTGRESQL no Docker
docker run --name postgresql -e POSTGRES_USER=izing -e POSTGRES_PASSWORD=123@mudar -e TZ="America/Sao_Paulo" -p 5432:5432 --restart=always -v /data:/var/lib/postgresql/data -d postgres
- Instalar Redis no Docker
docker run --name redis-izing -e TZ="America/Sao_Paulo" -p 6379:6379 --restart=always -d redis:latest redis-server --appendonly yes --requirepass "123@mudar"
- Instalar Portainer no Docker
docker run -d --name portainer -p 9000:9000 -p 9443:9443 --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce
- baixar chave repositorio google crome
wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | sudo gpg --dearmour -o /usr/share/keyrings/chrome-keyring.gpg
- adicionar repositorio
sudo sh -c 'echo "deb [arch=amd64,arm64,ppc64el signed-by=/usr/share/keyrings/chrome-keyring.gpg] http://dl.google.com/linux/chrome/deb/ stable main" > /etc/apt/sources.list.d/google.list'
- update apt
sudo apt update
- instalar google crome
sudo apt install -y google-chrome-stable
- remover arquivo padrao nginx
rm /etc/nginx/sites-enabled/default
- Criar o usário deploy
adduser deploy
- Permisão sudo deploy
usermod -aG sudo deploy
- Permisão docker deploy
usermod -aG docker deploy
- Alterar para o novo usuário
su deploy
- Realizar o download do node 20.x
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
- Instalar o node
sudo apt-get install -y nodejs
- Acessar o diretório raiz
cd ~
- baixar o repositório do izing.open.io
git clone https://github.com/cleitonme/izing.open.io.git izing.io
- Copiar o env de exemplo para o backend
cp izing.io/backend/.env.example izing.io/backend/.env
- Rodar o comando abaixo 2x para gerar JWT_SECRET e JWT_REFRESH_SECRET
openssl rand -base64 32
- Editar os dados abaixo e colar os valores gerados no item 31.
# ambiente
NODE_ENV=dev
# URL do backend para construção dos hooks
BACKEND_URL=https://backend.seusite.com.br
# URL do front para liberação do cors
FRONTEND_URL=https://izing.seusite.com.br
# Porta utilizada para proxy com o serviço do backend
PROXY_PORT=443
# Porta que o serviço do backend deverá ouvir
PORT=3000
# conexão com o banco de dados
DB_DIALECT=postgres
DB_TIMEZONE=-03:00
DB_PORT=5432
POSTGRES_HOST=localhost
POSTGRES_USER=izing
POSTGRES_PASSWORD=123@mudar
POSTGRES_DB=postgres
# Chaves para criptografia do token jwt
JWT_SECRET=gerado no passo 31
JWT_REFRESH_SECRET=gerado no passo 31
# Dados de conexão com o REDIS
IO_REDIS_SERVER=localhost
IO_REDIS_PORT='6379'
IO_REDIS_DB_SESSION='2'
IO_REDIS_PASSWORD=123@mudar
#CHROME_BIN=/usr/bin/google-chrome
CHROME_BIN=/usr/bin/google-chrome-stable
#CHROME_BIN=null
# tempo para randomização da mensagem de horário de funcionamento
MIN_SLEEP_BUSINESS_HOURS=10000
MAX_SLEEP_BUSINESS_HOURS=20000
# tempo para randomização das mensagens do bot
MIN_SLEEP_AUTO_REPLY=4000
MAX_SLEEP_AUTO_REPLY=6000
# tempo para randomização das mensagens gerais
MIN_SLEEP_INTERVAL=2000
MAX_SLEEP_INTERVAL=5000
# dados do RabbitMQ / Para não utilizar, basta comentar a var AMQP_URL
RABBITMQ_DEFAULT_USER=admin
RABBITMQ_DEFAULT_PASS=123456
# AMQP_URL='amqp://admin:123456@host.docker.internal:5672?connection_attempts=5&retry_delay=5'
# api oficial (integração em desenvolvimento)
API_URL_360=https://waba-sandbox.360dialog.io
# usado para mosrar opções não disponíveis normalmente.
ADMIN_DOMAIN=izing.io
# Dados para utilização do canal do facebook
VUE_FACEBOOK_APP_ID=3237415623048660
FACEBOOK_APP_SECRET_KEY=3266214132b8c98ac59f3e957a5efeaaa13500
# Forçar utilizar versão definida via cache (https://wppconnect.io/pt-BR/whatsapp-versions/)
#WEB_VERSION=2.2409.2
# Customizar opções do pool de conexões DB
#POSTGRES_POOL_MAX=100
#POSTGRES_POOL_MIN=10
#POSTGRES_POOL_ACQUIRE=30000
#POSTGRES_POOL_IDLE=10000
# Limitar Uso do Izing Usuario e Conexões
USER_LIMIT=99
CONNECTIONS_LIMIT=99
- Abrir para edição o arquivo .env com o comando abaixo e prencher com os dados acima. Para salvar se usa Ctrl + x
nano izing.io/backend/.env
- Acessando pasta do backend
cd izing.io/backend
- Instalando as dependências
npm install --force
- Buildando o backend
npm run build
- Reniciando docker
docker container restart postgresql
- Reniciando docker
docker container restart redis-izing
- Reniciando docker
docker container restart portainer
- Criando as tabelas no BD
npx sequelize db:migrate
- Inserindo dados em algumas tabelas do BD
npx sequelize db:seed:all
- Instalando o PM2
sudo npm install -g pm2
- Iniciando o backend com PM2
pm2 start dist/server.js --name izing-backend
- Gerar Startup
pm2 startup ubuntu -u deploy
- Gerar status parte 2
sudo env PATH=$PATH:/usr/bin pm2 startup ubuntu -u deploy --hp /home/deploy
- Acessando pasta do frontend
cd ../frontend
- copiando .env do example
cp .env.example .env
- Editando o arquivo .env com o comando abaixo e prencher com os dados do item 42. Para salvar se usa Ctrl + x
nano .env
- Dados env frontend
VUE_URL_API='https://backend.seusite.com.br'
VUE_FACEBOOK_APP_ID='23156312477653241'
- Criar arquivo server.js com dados do item 44. Para salvar se usa Ctrl + x
nano server.js
- Dados para gerar server.js
// simple express server to run frontend production build;
const express = require('express')
const path = require('path')
const app = express()
app.use(express.static(path.join(__dirname, 'dist/pwa')))
app.get('/*', function (req, res) {
res.sendFile(path.join(__dirname, 'dist/pwa', 'index.html'))
})
app.listen(4444)
- Instalando as dependências
npm install --force
- Instalando Quasar
npm i @quasar/cli
- Buildando o frontend
npm run build
- Iniciando o frontend com PM2
pm2 start server.js --name izing-frontend
- Salvando os serviços iniciados pelo PM2
pm2 save
- Listar os serviços iniciados pelo PM2
pm2 list
- Editar os dados abaixo com a URL que será usada para acessar o frontend.
server {
server_name izing.seusite.com.br;
location / {
proxy_pass http://127.0.0.1:4444;
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;
}
}
- Criar e editar o arquivo izing-frontend com o comando abaixo e prencher com os dados do item 52. Para salvar se usa Ctrl + x
sudo nano /etc/nginx/sites-available/izing-frontend
- Editar os dados abaixo com a URL que será usada para acessar o backend.
server {
server_name backend.seusite.com.br;
location / {
proxy_pass http://127.0.0.1:3000;
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;
}
}
- Criar e editar o arquivo izing-frontend com o comando abaixo e prencher com os dados do item 54. Para salvar se usa Ctrl + x
sudo nano /etc/nginx/sites-available/izing-backend
- Criar link simbólico para o arquivo izing-frontend
sudo ln -s /etc/nginx/sites-available/izing-frontend /etc/nginx/sites-enabled/
- Criar link simbólico para o arquivo izing-backend
sudo ln -s /etc/nginx/sites-available/izing-backend /etc/nginx/sites-enabled/
- Editar o arquivo de configuração do nginx com o comando abaixo e prencher com os dados do item 59. adicionar antes# server_tokens off;. Para salvar se usa Ctrl + x
sudo nano /etc/nginx/nginx.conf
- adicionar antes# server_tokens off;
underscores_in_headers on;
client_max_body_size 100M;
large_client_header_buffers 16 5120k;
- Testar as configurações do nginx
sudo nginx -t
- Restartar o nginx
sudo service nginx restart
- Instalar o suporte a pacotes Snap
sudo apt-get install snapd
- Instalar o pacote do notes
sudo snap install notes
- Instalar o pacote do certbot(SSL)
sudo snap install --classic certbot
- Gerar certificado
sudo certbot --nginx
- reniciar serviços docker
docker container restart portainer
- reniciar serviços docker
docker container restart postgresql
- reniciar serviços docker
docker container restart redis-izing
Pronto sistema instalado so acessar frontend
Usuário painel SaaS
Usuário
Senha:
123456
Usuário padrão para acesso
Usuário
Senha:
123456
Problemas conexão?
- Outra versão js pode se tentar Na pasta backend execute
npm r whatsapp-web.js
npm install github:pedroslopez/whatsapp-web.js
rm .wwebjs_auth -Rf
rm .wwebjs_cache -Rf
pm2 restart all
Para reinstalar o whatsapp.js.. verifique no repositorio oficial se não tem alguma mais atual
"Internal server error: SequelizeConnectionError: could not open file "global/pg_filenode.map": Permission denied"
docker container restart postgresql
docker exec -u root postgresql bash -c "chown -R postgres:postgres /var/lib/postgresql/data"
docker container restart postgresql
"Your Portainer instance timed out for security purposes. To re-enable your Portainer instance, you will need to restart Portainer."
docker container restart portainer
Depois acesse novamente url http://seuip:9000/
-
Cupom 25% desconto "WHAZING"
WHAZING
Para quem gostaria de uma consultoria ou que eu faça instalação pode chamar no whatsapp (será cobrado por isso) 48 999416725