Como hospedar aplicações NestJS
Como hospedar aplicações NestJS na Square Cloud
Hospedar uma aplicação NestJS na Square Cloud é um processo direto, focado na eficiência. Como o NestJS utiliza TypeScript, o segredo para um deploy bem-sucedido está na compilação (build) e no ajuste correto da porta de escuta.
1. Ajustando a Porta (Port 80)
A Square Cloud utiliza a porta 80 para rotear o tráfego da sua aplicação. Por padrão, o NestJS costuma iniciar na porta 3000. Você deve alterar o arquivo main.ts para escutar na porta correta.
No seu arquivo src/main.ts:
async function bootstrap() {
const app = await NestFactory.create(AppModule);
// Altere de 3000 para 80
await app.listen(80);
}
bootstrap();
2. Gerando o Build
Não enviamos a pasta src para a hospedagem, pois o Nest compila o código de maneira otimizada para JS.
Execute o comando de build na sua máquina local:
npm run buildIsso gerará uma pasta chamada dist na raiz do seu projeto. É esse conteúdo que será executado na Square Cloud.
3. Preparando o Pacote de Envio
Para um deploy otimizado, você deve criar um arquivo .zip contendo os seguintes itens:
- A pasta
dist/: (Contém seu código compilado). - O arquivo
package.json: (Necessário para instalar as dependências de produção). - O arquivo
package-lock.jsonouyarn.lock: (Garante as versões exatas das bibliotecas).
Importante: Não inclua a pasta node_modules. A Square Cloud instalará as dependências automaticamente no servidor após o upload.
4. Configurando o Arquivo Principal (Main)
Ao realizar o deploy (seja pelo dashboard ou via arquivo de configuração), você deve apontar para o arquivo de entrada dentro da pasta compilada.
- Main File:
dist/main.js
Se estiver usando o arquivo squarecloud.app ou squarecloud.config, a linha ficará assim:
MAIN=dist/main.js5. Dicas de Ouro para NestJS
- Produção: Certifique-se de que suas dependências de banco de dados e segredos (como chaves de API) estejam configuradas nas Variáveis de Ambiente (ENVs) no dashboard da Square, e não "hardcoded" no código.
- Prisma/TypeORM: Se usar algum ORM, lembre-se de rodar as migrations ou gerar o client do banco de dados no seu processo de build ou via scripts de
postinstallnopackage.json. - Memória: Aplicações NestJS podem consumir um pouco mais de RAM durante a inicialização devido à injeção de dependências. Monitore os logs para garantir que seu plano possui recursos suficientes.
Atualizado em: 12/05/2026
Obrigado!
