Pular para o conteúdo principal

Node.js

Introdução

Node.js é uma plataforma de servidor que executa aplicativos escritos em JavaScript.

Primeiro, você precisa instalar o Node.js:

  • Vá para "Configurações" -> "Aplicativos"

Menu de gerenciamento de aplicativos no FASTPANEL

  • Clique no botão "Instalar" da versão necessária do Node.js

Instalar versão do Node.js no FASTPANEL

Crie um site:

  • Selecione um modelo para um site Node.js

Nova configuração de site no FASTPANEL

  • Especifique o domínio e os parâmetros relacionados. Na etapa de configuração, você pode alterar o BD, o usuário FTP e o Backend

Nova configuração de site no FASTPANEL

  • Envie os arquivos do aplicativo para o diretório do site
  • Para instalar as dependências, execute npm20.15.1 install no Terminal (é necessário instalar o aplicativo ttyd para FASTPANEL®)

Instalar dependências do Node.js

  • Reinicie o Node.js acessando o painel do site e, em seguida, abrindo a seção "Serviços".

Serviço de reinicialização do Node.js

Framework Express

Usando o framework Express como exemplo, vamos criar um servidor web simples:

  • Conecte-se ao servidor via SSH como o usuário proprietário do site (você pode usar o aplicativo ttyd para FASTPANEL®)
  • Crie um arquivo app.js no diretório do site e preencha-o com o seguinte código:
const express = require('express');
const app = express();
const PORT = process.env.SERVICE_PORT;

app.get('/', (req, res) => {
res.send('Hello! This is my first server on Node.js + Express 🚀');
});

app.listen(PORT, () => {
console.log(`Server is running at http://localhost:${PORT}`);
});

  • No diretório do site, execute o comando para instalar o express
npm20.15.1 install express
  • Vá para o painel do site e depois para a seção Serviços
  • Reinicie o serviço
  • Verifique o site

Docusaurus

Usando o aplicativo web Docusaurus como exemplo, vamos configurar as definições:

  • Conecte-se ao servidor via SSH como o usuário proprietário do site (você pode usar o aplicativo ttyd para FASTPANEL®)
  • No diretório do site, execute a instalação do Docusaurus
npx20.15.1 create-docusaurus -j ./docs
  • Quando for solicitado a selecionar um modelo, responda classic (recommended)

  • Após a instalação, substitua uma linha no arquivo docs/package.json

"start": "docusaurus start",
# replace with
"start": "docusaurus start --port $SERVICE_PORT",

$SERVICE_PORT é uma variável do sistema definida no FASTPANEL®

  • No painel de controle, vá para "configurações do site" -> "Backend"

  • Selecione o manipulador Standalone ou PM2.

  • Escolha a versão desejada do Node.js.

  • Especifique a pasta de trabalho docs

  • No campo Comando de inicialização, insira: npm run start

  • Salve. Aguarde a compilação do aplicativo (as informações aparecerão nos logs). Verifique o site

Next.js

Usando o Next.js com Node.js 20.19 como exemplo, vamos criar um servidor web simples:

  • Conecte-se ao servidor via SSH como o usuário proprietário do site (você também pode usar o aplicativo ttyd no FASTPANEL®).
  • No diretório do site, execute o comando de inicialização do projeto:
yarn20.19.4 init -y
yarn20.19.4 add next react react-dom
  • Adicione um bloco scripts ao arquivo package.json:
"scripts": {
"dev": "next dev -p $SERVICE_PORT",
"build": "next build",
"start": "next start -p $SERVICE_PORT"
}
  • Crie um diretório pages e, dentro dele, adicione um arquivo chamado index.js:
mkdir pages
cat <<EOF > pages/index.js
export async function getServerSideProps() {
return {
props: {
nodeVersion: process.version,
port: process.env.SERVICE_PORT || 3000,
},
};
}

export default function Home({ nodeVersion, port }) {
return (
<div style={{
fontFamily: 'sans-serif',
textAlign: 'center',
marginTop: '20vh'
}}>
<h1>✅ It works!</h1>
<p>Next.js app running on Node.js {nodeVersion}</p>
<p>Port: {port}</p>
</div>
);
}
EOF
  • Execute a compilação do projeto.
yarn20.19.4 build
  • No painel de controle, vá para "configurações do site" -> "Backend"
  • Selecione o manipulador Standalone ou PM2.
  • Escolha a versão desejada do Node.js.
  • No campo Comando de inicialização, insira: yarn run start.
  • Salve. Aguarde a compilação do aplicativo (as informações aparecerão nos logs). Verifique o site

Informações adicionais

No modo Standalone, um processo Node.js é iniciado para executar seus scripts.

No modo PM2, o gerenciador de processos PM2 é usado para gerenciar processos Node.js, logs e carga do sistema.
Esse modo também permite especificar o número de workers — isto é, o número de processos Node.js que tratam as solicitações recebidas pelo servidor.
Além disso, esse modo fornece a opção Enable file watch — o PM2 reinicia automaticamente seu aplicativo quando um arquivo é modificado no diretório atual ou em seus subdiretórios. Observe que esse modo introduz carga adicional no sistema e não é recomendado para ambientes de produção.

Da mesma forma, você pode configurar o aplicativo se ele exigir YARN em vez de NPM

Você pode instalar as dependências do seu projeto listadas em package.json usando YARN ou NPM diretamente do FASTPANEL®. Para fazer isso, abra o cartão do site e vá para a seção Serviços:

Serviços do Node.js

Logs

Um aplicativo Node.js pode gerar logs. No FASTPANEL®, eles estão localizados no painel do site, na seção Logs, na aba "Log do Backend"

Comandos do console

Após instalar o Node.js no FASTPANEL®, os usuários podem trabalhar com seus projetos usando comandos de console como:

  • pm2
  • yarn20.15.1
  • npx20.15.1
  • npm20.15.1
  • node20.15.1

Exemplo:

$ npm20.15.1 list
node-socket-port-server@1.0.0 /var/www/node_user/data/www/node.site
└── express@4.21.2
$ pm2 ls
┌────┬─────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name │ namespace │ version │ mode │ pid │ uptime │ ↺ │ status │ cpu │ mem │ user │ watching │
├────┼─────────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0 │ amazing_site│ default │ 1.0.0 │ cluster │ 9355 │ 2m │ 0 │ online │ 0% │ 62.4mb │ user │ disabled │
│ 1 │ amazing_site│ default │ 1.0.0 │ cluster │ 9362 │ 2m │ 0 │ online │ 0% │ 62.5mb │ user │ disabled │
└────┴─────────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

Cada nome de comando inclui o número da versão do Node.js que foi instalada. Neste exemplo, a versão disponível é o Node.js 20.15.1.