- Ubuntu 20.04 (obrigatório)
- Mínimo: 2 CPUs, 4GB RAM
- Recomendado: 4 CPUs, 6GB RAM
sudo apt update && sudo apt upgrade -ysudo apt install -y curl wget git unzip sudo lsb-release ca-certificates build-essential dos2unix
sudo apt autoremoveAdicione ao /etc/hosts:
127.0.1.1 nexus-app
E execute:
sudo timedatectl set-timezone America/Sao_Paulo
sudo hostnamectl set-hostname nexus-appsudo apt install -y ufw
sudo ufw allow OpenSSH
sudo ufw allow 80
sudo ufw allow 443
sudo ufw enable
sudo ufw statussudo mkdir -p /www/wwwroot
sudo chown $USER:$USER /www/wwwroot
sudo git clone https://github.com/psi-ezequiasmartins/whaticket-pkg-saas /www/wwwroot
cd /www/wwwrootsudo chmod 755 *.sh lib/*.sh utils/*.sh variables/*.sh
dos2unix *.sh lib/*.sh utils/*.sh variables/*.sh whaticketsaas./setup.sh
./checklist.sh
./check.sh
./check-v2.shmkdir -p /www/wwwroot/logsCrie um snapshot da VPS pelo painel do provedor ou faça backup manual com rsync ou tar.
Atenção:
Salve o log fora da pasta da instância para não perder durante ogit clone.
sudo chmod +x whaticketsaas
script /www/wwwroot/logs/log-install.txt 2>&1
./whaticketsaas
# ou
sudo ./whaticketsaas | tee /www/wwwroot/logs/log-install.txtPara finalizar o log:
exitcd /home/deploy/nexus/backend
pm2 start dist/server.js --name nexus-backend
pm2 saveSe o frontend for SSR/Node:
cd /home/deploy/nexus/frontend
pm2 start npm --name nexus-frontend -- run start
pm2 saveObs: Para React build estático, use apenas o nginx.
sudo systemctl restart nginx
# ou
sudo service nginx restartpm2 status- Sempre use
pm2 saveapós iniciar/reiniciar apps. - Logs backend:
pm2 logs nexus-backend
- Logs frontend:
pm2 logs nexus-frontend
MAIL_HOST="smtp.gmail.com"
MAIL_USER="seu-email"
MAIL_PASS="sua-senha"
MAIL_FROM="seu-email"
MAIL_PORT="587"GERENCIANET_SANDBOX=true
GERENCIANET_CLIENT_ID=sua-id
GERENCIANET_CLIENT_SECRET=sua_chave_secreta
GERENCIANET_PIX_CERT=nome_do_certificado
GERENCIANET_PIX_KEY=chave_pix_gerencianetCertificados:
- Salve o certificado em
.p12e a chave privada em.pemna pastabackend/certs.
- Os arquivos de configuração ficam em
/etc/nginx/sites-available/e os links simbólicos em/etc/nginx/sites-enabled/. - Para React build, NÃO use
proxy_pass. Sirva os arquivos estáticos diretamente:server { listen 80; server_name seu-dominio.com.br; root /caminho/para/frontend/build; index index.html; location / { try_files $uri /index.html; } }
- Para backend Node/Express, use
proxy_passapontando para a porta correta:server { listen 80; server_name api.seu-dominio.com.br; location / { proxy_pass http://127.0.0.1:4001; 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; } }
- Permissões:
Os arquivos em/etc/nginx/sites-available/devem ter permissão644.
Os links simbólicos em/etc/nginx/sites-enabled/ficam comolrwxrwxrwx(padrão do sistema). - Após qualquer alteração, sempre teste e recarregue o nginx:
sudo nginx -t sudo systemctl reload nginx
- Se aparecer erro 502, verifique:
- Se o serviço está rodando na porta correta.
- Se o nginx tem permissão de leitura nos diretórios do frontend.
- Os logs em
/var/log/nginx/error.log.
Dica:
Documente sempre que fizer ajustes manuais nos arquivos do nginx para facilitar futuras manutenções!
cp /home/deploy/SUAEMPRESA/backend/certs/logo.png /home/deploy/SUAEMPRESA/frontend/
# logo.png (200x120), logologin.png (250x250)
cd /home/deploy/SUAEMPRESA/frontend/
npm run build
pm2 restart allUse: https://favicon.io/favicon-converter/
Edite App.js:
primary: { main: '#0872b9' }, // Exemplo de corRebuild e reinicie:
npm run build
pm2 restart allEdite index.html e repita o build/restart.
Acesse: nexus-app.markagp.com.br
- Usuário: admin@admin.com
- Senha: 123456
- Corrija variáveis não utilizadas e warnings do ESLint conforme necessário para manter o código limpo.
- Sempre faça backup antes de grandes alterações.
- Consulte os logs para depuração de problemas.
