Pular para o conteúdo principal

🚀 O que é o Forever?

O Forever é um gerenciador de processos simples e eficiente para aplicações Node.js. Ele foi projetado para garantir que sua aplicação continue executando continuamente, reiniciando-a automaticamente em caso de falhas.

🔍 Principais Vantagens do Forever

  1. Simplicidade na Execução: Com comandos diretos como forever start, forever stop e forever list, é possível iniciar e controlar sua aplicação sem complexidade.

  2. Reinício Automático em Caso de Falha: Se sua aplicação travar ou for encerrada por erro, o Forever detecta a falha e reinicia automaticamente o processo.

  3. Execução em Background com Logs: O Forever executa a aplicação em segundo plano e permite redirecionar logs de saída e erro para arquivos personalizados.

  4. Leve e Eficiente: Por ser uma ferramenta minimalista, o Forever consome poucos recursos e é ideal para ambientes onde a sobrecarga deve ser mínima.

🛠️ Como Utilizar o Forever na SaveinCloud

Na plataforma, você pode integrar o Forever à sua aplicação Node.js de duas maneiras principais:

1️⃣ - Selecionando a Tag "Forever" ao Criar o Ambiente

Durante a criação de um novo ambiente na SaveinCloud, você pode optar por uma imagem pré-configurada que já inclui o Node.js e o Forever instalados. Essa opção agiliza o processo de deploy, permitindo que sua aplicação seja gerenciada pelo Forever desde o início.

Forever Topologia

2️⃣ - Configurando o Forever via Variáveis de Ambiente

Se você já possui um ambiente em execução, é possível configurar o Forever utilizando variáveis de ambiente.

Variáveis de Ambiente - Parte 1

Variáveis de Ambiente - Parte 2

📄 Executando Aplicação com Forever via Arquivo de Configuração

Embora o Forever não utilize um arquivo ecosystem.config.js como o PM2, é possível usar um arquivo forever.json para organizar múltiplas execuções se necessário, devendo o mesmo estar no caminho /home/jelastic/ROOT que é o padrão definido na variável $ROOT_DIR. Exemplo do arquivo de configuração:

{
"uid": "app1",
"append": true,
"watch": true,
"script": "server.js",
"sourceDir": "/home/jelastic/ROOT"
}

Onde:

  • "uid": define um nome exclusivo para a sua aplicação.
  • "append": define se os logs devem ser complementados (true) ou sobrescritos (false).
  • "watch": permite habilitar ou desabilitar a reinicialização automática de um processo filho mediante alterações no código do aplicativo apropriado; defina como false, se desejar evitar reinicialização inesperada após a implantação do VCS (incluindo implantação automática ).
  • "script": informe o arquivo executável .js da sua aplicação.
  • "sourceDir": informe um caminho absoluto para o script.

⚙️ Executando Aplicação com Forever via WebSSH

forever start -a -l forever.log -o out.log -e err.log server.js

Parâmetros:

  • -a: Anexa aos arquivos de log (não sobrescreve).
  • -l: Caminho do log do próprio Forever.
  • -o: Log da saída padrão da aplicação.
  • -e: Log da saída de erro padrão da aplicação.

Conforme a imagem abaixo, é possível observar a execução da aplicação com Forever via WebSSH.

Comando forever start

Além disso, você pode verificar quais processos estão em execução com o comando forever list, exibindo o PID, arquivo de log e o uptime da sua aplicação.

Comando forever list

🔁 Reinício Automático

O Forever reinicia automaticamente sua aplicação em caso de falha por padrão. Se o processo for encerrado com erro (process.exit(1)), ele será reiniciado.

🔍 Comandos Úteis do Forever

Execute o comando forever --help no terminal SSH da sua instância para obter mais informações sobre o gerenciador de processos Forever!

  • forever start app.js: Inicia a aplicação.
  • forever stop app.js: Para a aplicação.
  • forever restart app.js: Reinicia a aplicação.
  • forever list: Lista todos os processos monitorados.
  • forever logs: Exibe o caminho dos arquivos de log.
  • forever stopall: Encerra todos os processos.
  • forever cleanlogs: Remove logs antigos.
info

💡 Lembre-se de armazenar o seu arquivo package.json dentro do diretório /home/jelastic/ROOT, pois a plataforma executará o comando npm install para instalar as dependências contidas em seu arquivo (a variável de ambiente $UPDATE_PACKAGES_ON_RESTART precisa estar com o valor true).

🔐 Firewall

🔗 Certifique-se de liberar no firewall a porta que sua aplicação utiliza para garantir o funcionamento correto. Para saber mais sobre Gestão de Firewall, clique aqui!