Skip to content

Latest commit

 

History

History
47 lines (33 loc) · 2.1 KB

File metadata and controls

47 lines (33 loc) · 2.1 KB

Deploy — Server Manager (Ubuntu 24.04)

Instruções para instalação automatizada (pensadas para execução por um agente).

Pré-requisito único

Um domínio/subdomínio (ex.: painel.seudominio.com) com registro DNS A apontando para o IP da VPS. Sem isso o certbot falha.

Instalação (um comando)

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 bash

O script é idempotente — rodar de novo atualiza o app (git pull + restart). Ele faz, nesta ordem:

  1. Instala Node.js 22 (se não houver Node >= 18)
  2. Clona/atualiza o repo em /opt/server-manager e roda npm install --omit=dev
  3. Grava /opt/server-manager/.env com NODE_ENV=production, bind local, porta e senha (chmod 600)
  4. Instala PM2, inicia o app (pm2 startOrRestart ecosystem.config.js), salva e registra no boot
  5. Instala Nginx e configura o reverse proxy (com proxy_buffering off para o SSE)
  6. Instala certbot, emite o certificado HTTPS e ativa redirect HTTP→HTTPS; ajusta ufw se ativo

Verificação pós-instalação

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.

Operação

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

Notas

  • 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).