Executando uma aplicação Next.js com pm2 e yarn no ubuntu server.

Bom, se você está colocando recentemente uma aplicação em Next.js para rodar no servidor e não sabe como deixar ela rodando no background do seu servidor, vamos ver como instalar e dar start no seu projeto.

Bom, antes de mais nada, se você ficou curioso, da uma olhada nesse framework em JavaScript https://nextjs.org/ alguns grandes estão usando, como é o caso do Nubank.

Configurou seu servidor? Geralmente você vai dar start no projeto enquanto desenvolve com o comando abaixo:

$ npx next build
$ npx next start

E pronto, seu servidor está rodando sua aplicação, nativamente na porta 3000 ou seja, http://localhost:3000 ou seu IP com a porta 3000, caso você queira escolhar outra porta, pode executar o seguinte comando, trocando o XXXX pela porta.

npx next start -p XXXX

E agora? quando você sai do terminal ou então para de rodar a aplicação, simplesmente para de funcionar, é nessa hora que vamos para o pm2.

O que é o pm2?

PM2 é um gerenciador de processo daemon que o ajudará a gerenciar e manter seu aplicativo online. Começar com PM2 é direto, é oferecido como um CLI simples e intuitivo, instalável via NPM.

pm2.keymetrics.io

Vamos então colocar nossa aplicação para rodar.

## vamos instalar o nginx
$ sudo apt install nginx

## vamos instalar o pm2
$ curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
$ echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
$ sudo apt-get update && sudo apt-get install yarn
$ yarn global add pm2
$ npm install [email protected] -g
$ pm2 start yarn --name "nextjs" --interpreter bash -- start

Pronto, sua aplicação está rodando com o nome de nextjs no monitor que apareceu igual na imagem abaixo.

Se você quiser saber mais do pm2, basta acessar a documentação dele clicando aqui pm2.keymetrics.io/docs/usage/process-management

Head of Development & Project Manager IT | Scrum Master | Product Owner / Especialista em projetos de sites, aplicativos e sistemas de TI.