Fazer deploy de um app Nest
A App Platform oferece três runtimes para aplicações Nest: Node.js, Bun e Deno. Cada runtime tem seu próprio gerenciador de pacotes, comando de build, comando de inicialização e arquivo de configuração.
Build da aplicação Copiar link
Node.js Copiar link
A Hostman utiliza o seguinte ambiente ao fazer o build de um app Nest:
- Node.js: 20, 22 ou 24
- npm
- yarn
A aplicação é compilada na raiz do repositório ou no diretório especificado no campo Project directory path.
Se o projeto tiver package.json e usar yarn, executamos:
apt remove -y cmdtest yarn
npm install --global yarn
cd /<DIRETÓRIO> && yarn install --check-filesNos outros casos em que o package.json estiver presente:
cd /<DIRETÓRIO> && npm install<DIRETÓRIO> é o caminho até o diretório com o package.json.
O comando de start padrão é:
npm run start:prodCertifique-se de que o comando start:prod está definido na seção scripts do package.json. Por exemplo:
"scripts": {
"start:prod": "node dist/main.js"
}Deno Copiar link
A App Platform executa o build no diretório raiz do repositório ou no diretório que você definir no campo Caminho do diretório do projeto. As seguintes versões do Deno estão disponíveis:
- 2.7.14
- 2.7.10
- 2.6.0
Aplicações Deno não precisam de um passo de build separado. A App Platform executa a aplicação diretamente em um container com Deno, portanto o comando deno compile não é utilizado em um deploy padrão.
A App Platform utiliza o seguinte comando para iniciar a aplicação:
deno run --allow-net --allow-env --allow-read --allow-sys --allow-ffi main.tsOutra opção é definir o comando de inicialização como uma tarefa:
deno task startAo executar deno task start, a App Platform aciona a tarefa start definida no arquivo deno.json. Defina-a da seguinte forma:
"tasks": {
"start": "deno run --allow-net --allow-env --allow-read --allow-sys --allow-ffi main.ts"
}Neste exemplo, o arquivo de entrada da aplicação é main.ts. Atualize o caminho conforme a estrutura do seu projeto.
Permissões
O Deno exige que você declare explicitamente quais permissões a aplicação precisa. Inclua as flags correspondentes ao executar a aplicação:
--allow-net— requisições de rede--allow-read— leitura do sistema de arquivos--allow-write— escrita no sistema de arquivos--allow-env— acesso a variáveis de ambiente--allow-run— execução de subprocessos--allow-ffi— carregamento de bibliotecas nativas (FFI)--allow-hrtime— timers de alta resolução--allow-sys— leitura de informações do sistema (SO, CPU etc.)--allow-allou-A— concede todas as permissões de uma vez--watch— reinicia a aplicação automaticamente ao detectar alterações nos arquivos
Por exemplo, se a aplicação realiza requisições de rede, lê variáveis de ambiente e acessa o sistema de arquivos:
deno run --allow-net --allow-env --allow-read src/index.tsBun Copiar link
A App Platform executa o build no diretório raiz do repositório ou no diretório que você definir no campo Caminho do diretório do projeto. O Bun é utilizado tanto como gerenciador de pacotes quanto como runtime.
Para realizar o build, a App Platform executa:
bun buildPara iniciar a aplicação, a App Platform executa:
bun run startEsse comando aciona o script start definido no arquivo package.json. Aponte-o para o arquivo de entrada da aplicação:
"scripts": {
"start": "bun run src/main.ts"
}Neste exemplo, o arquivo de entrada da aplicação é src/main.ts. Atualize o caminho conforme a estrutura do seu projeto.
Troubleshooting Copiar link
Deploy falhou Copiar link
Se houver problemas no deploy, primeiro confira o log de deploy. Ele ajuda a identificar em qual etapa ocorreu o erro.
Na maioria dos casos, os problemas estão relacionados ao comando de start. Certifique-se de que todos os módulos necessários estão listados no package.json.
Please add build instructions to your script section in package.json Copiar link
O problema é que o comando npm run build acessa o arquivo package.json, e se o valor da diretiva build não estiver especificado, ocorre um erro.
Para corrigir isso, adicione as diretivas necessárias na seção scripts do package.json. Leia mais sobre o uso de scripts aqui.