Guia do cliente

Publicando seu site Node.js

Como preparar, enviar e atualizar uma aplicação Node no seu plano de hospedagem, usando apenas o acesso FTP que você já tem.

Como funciona

Um site em PHP ou WordPress é executado sob demanda: cada visita dispara o código e ele termina. Basta enviar os arquivos e o site está no ar.

Uma aplicação Node funciona de outro jeito: o seu código é o servidor. Ele precisa estar em execução o tempo todo, esperando as visitas. Por isso, além de enviar os arquivos, existe um segundo passo — colocar essa aplicação em execução — que é feito por nós, do lado do servidor.

Na prática: você envia por FTP e nos avisa; nós publicamos. Não é preciso ter acesso a terminal nem conhecer o servidor.

Antes de enviar: três requisitos

Estes três pontos são o que costuma impedir uma aplicação de subir. Vale conferir antes do primeiro envio.

1. A aplicação precisa aceitar a porta que informamos

Cada aplicação do servidor recebe uma porta interna própria. Se o seu código fixar um número, haverá conflito com outro site. Leia a porta do ambiente:

// certo — usa a porta que o servidor informa
const porta = process.env.PORT || 3000;
const host  = process.env.HOST || '127.0.0.1';
app.listen(porta, host);

// errado — porta fixa, e aberta para fora
app.listen(3000);

O host importa tanto quanto a porta: 127.0.0.1 significa que apenas o servidor web conversa com a aplicação, e é ele quem cuida do domínio, do HTTPS e do certificado.

2. Envie a versão já compilada

Se o seu projeto usa TypeScript, um empacotador ou qualquer etapa de build, rode essa etapa no seu computador e envie o resultado. O servidor não compila código.

3. Inclua o package-lock.json

É esse arquivo que garante que as bibliotecas instaladas no servidor sejam exatamente as mesmas que você testou. Sem ele, as versões podem divergir e a aplicação se comportar de forma diferente da sua máquina.

O que enviar

Enviar Não enviar
Código da aplicação (já compilado)
package.json
package-lock.json
Migrations ou scripts de banco
Arquivos do site (HTML, CSS, JS, imagens)
node_modules
.git
Código-fonte não compilado
Testes e arquivos de desenvolvimento
Arquivos .zip do projeto

Nunca envie a pasta node_modules

Ela costuma ter dezenas de milhares de arquivos: o envio levaria horas e provavelmente falharia no meio. Além disso, algumas bibliotecas contêm partes compiladas para o seu computador, que não funcionam no servidor.

Nós instalamos as bibliotecas no servidor a partir do package-lock.json, já na versão correta para a máquina.

Onde enviar

Ao entrar no FTP, você verá duas pastas. Cada uma tem uma finalidade, e a diferença entre elas protege seus dados.

/ ├── public_html/ ← tudo aqui é público na internet HTML, CSS, JS, imagens: o que o visitante baixa │ └── app/ ← nada aqui é acessível pela internet o código da aplicação, senhas e arquivos internos

Senhas e chaves só em app/

Qualquer arquivo dentro de public_html pode ser baixado por qualquer pessoa que saiba o endereço. Um arquivo de configuração com a senha do banco colocado ali fica acessível publicamente — é uma das causas mais comuns de vazamento de dados.

A pasta app/ existe exatamente para isso: é onde ficam o código, as chaves e tudo que não deve ser público.

Se a sua aplicação também entrega as páginas (em vez de só a API), avise: nesse caso configuramos o servidor para direcionar tudo para ela, e o public_html fica sem uso.

Configurações e senhas

Aplicações costumam precisar de senha de banco, chaves de API e outros segredos. O caminho normal é um arquivo chamado .env dentro da pasta app/, com uma configuração por linha:

DATABASE_URL=mysql://usuario:senha@localhost:3306/banco
JWT_SECRET=uma-frase-longa-e-aleatoria
API_KEY=...

Envie esse arquivo pelo FTP, não por mensagem

E-mail e aplicativos de mensagem guardam cópias em vários lugares, fora do seu controle e do nosso. O FTP entrega o arquivo direto na sua conta.

Se precisar que nós criemos o banco de dados, peça — enviamos as credenciais pelo painel, e você as coloca no .env.

Pedindo a publicação

Depois de enviar os arquivos, nos avise. Para agilizar, mande estas informações junto — são as que precisamos para configurar:

Informações para o primeiro envio

  • Domínio do site.
  • Arquivo que inicia a aplicação — por exemplo dist/server.js ou index.js.
  • Versão do Node que a aplicação usa. Se não souber, informe a versão do seu computador (node -v).
  • Precisa de banco de dados? Se sim, qual tipo, e se você tem um arquivo de dados para importar.
  • A aplicação entrega as páginas do site, ou serve apenas como API para um site que você enviou em public_html?
  • Comandos especiais antes de subir, se houver — criação de tabelas, importação inicial, algo do tipo.

Com isso configuramos a aplicação, instalamos as bibliotecas, criamos o banco se necessário e colocamos tudo no ar. Avisamos quando estiver pronto.

Atualizações depois

A partir da segunda vez, é mais simples — a configuração já está feita.

  1. Compile a nova versão no seu computador.
  2. Envie os arquivos alterados por FTP, substituindo os antigos.
  3. Avise que enviou.

Reiniciamos a aplicação para que a nova versão entre em uso. Só as páginas e imagens em public_html valem imediatamente — o código em app/ continua rodando a versão anterior até o reinício.

Se mudaram as bibliotecas ou o banco

Avise quando o package.json tiver bibliotecas novas ou quando houver mudanças na estrutura do banco. São passos extras da nossa parte, e sem eles a aplicação pode não subir.

Limites e boas práticas

  • Cada aplicação tem um limite de memória. Se ela ultrapassar, é encerrada e reiniciada automaticamente — o que aparece como instabilidade. Se acontecer, avise: revisamos juntos se é vazamento de memória ou se o limite precisa aumentar.
  • A aplicação reinicia sozinha se travar, e volta sozinha se o servidor for reiniciado. Não é preciso nos avisar nesses casos.
  • Guarde os registros de erro pela sua aplicação, ou peça os logs do servidor quando precisar investigar algo.
  • Teste antes de enviar. Não há ambiente de testes no plano de hospedagem: o que você envia vai para o ar.
  • Mantenha uma cópia local de tudo que enviar. Fazemos backup do servidor, mas a versão original do seu projeto é responsabilidade sua.

Ficou alguma dúvida sobre o seu caso específico? Escreva antes de enviar — é mais rápido ajustar o que for preciso antes da publicação do que depois.

Pronto para publicar?

Envie os arquivos pelo FTP e fale com a nossa equipe para colocarmos a sua aplicação no ar.