Instruções para instalação automatizada (pensadas para execução por um agente).
Um domínio/subdomínio (ex.: painel.seudominio.com) com registro DNS A apontando para o IP da VPS. Sem isso o certbot falha.
curl -fsSL https://raw.githubusercontent.com/lippdev/servermanager/main/deploy/install.sh | \
sudo DOMAIN=painel.seudominio.com SM_PASSWORD='SENHA_FORTE_AQUI' CERTBOT_EMAIL=voce@email.com bashO script é idempotente — rodar de novo atualiza o app (git pull + restart). Ele faz, nesta ordem:
- Instala Node.js 22 (se não houver Node >= 18)
- Clona/atualiza o repo em
/opt/server-managere rodanpm install --omit=dev - Grava
/opt/server-manager/.envcomNODE_ENV=production, bind local, porta e senha (chmod 600) - Instala PM2, inicia o app (
pm2 startOrRestart ecosystem.config.js), salva e registra no boot - Instala Nginx e configura o reverse proxy (com
proxy_buffering offpara o SSE) - Instala certbot, emite o certificado HTTPS e ativa redirect HTTP→HTTPS; ajusta ufw se ativo
pm2 status # server-manager deve estar "online"
curl -s https://SEU_DOMINIO/api/auth-required # deve retornar {"required":true}No celular: abrir https://SEU_DOMINIO, fazer login e usar "Adicionar à tela de início" para instalar o PWA.
| Ação | Comando |
|---|---|
| Logs | pm2 logs server-manager |
| Restart | pm2 restart server-manager |
| Atualizar versão | rodar o install.sh de novo (ou git -C /opt/server-manager pull && pm2 restart server-manager) |
| Trocar senha | editar /opt/server-manager/.env e pm2 restart server-manager |
- O PM2 roda como root para listar processos de todos os usuários; o payload remove comandos completos e IPs antes de chegar ao navegador.
- A aplicação escuta em
127.0.0.1; a porta 3000 fica atrás do Nginx e o UFW também bloqueia acesso externo direto quando ativo. - Renovação do certificado é automática (timer do certbot).