🚀 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
-
Simplicidade na Execução: Com comandos diretos como
forever start
,forever stop
eforever list
, é possível iniciar e controlar sua aplicação sem complexidade. -
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.
-
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.
-
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.
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.
📄 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 comofalse
, 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.
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.
🔁 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.
💡 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!