JavaScript · Node.js 22.18.0
Hospedagem JavaScript 24/7
Suba um bot em discord.js, uma API Express ou um worker de fila e deixe rodando. A plataforma instala as dependências do package.json no build, executa o seu script de start em container isolado e reinicia o processo sozinha, em qualquer plano, quando ele cai.
Quem desenhou o JavaScript
A Netscape precisava de um script no navegador que não fosse o Java: algo pequeno para validar formulário e mexer na página. Brendan Eich escreveu a primeira versão em maio de 1995, em cerca de dez dias — primeiro Mocha, depois LiveScript, e JavaScript quando o marketing quis o nome ao lado da Sun. Entrou no Netscape Navigator 2.0 no fim daquele ano. Em 1997 a ECMA padronizou a linguagem; o núcleo estreito daqueles dez dias ainda é o que o motor executa.

Brendan Eich
Jonas Strandell · CC BY 2.0
A cola do navegador
Não nasceu para substituir o Java: nasceu para validar formulário, reagir a clique e amarrar a página. Um arquivo de texto que o motor do browser executa.
A linguagem que a web escolheu
Como todo browser passou a falar JavaScript, o mesmo idioma saiu do cliente e foi para o servidor, o app e o script. O propósito original era o documento; o alcance veio depois.
Dinâmica, sem compilador
Tipos frouxos, protótipos, funções de primeira classe. Eich tinha dez dias: o núcleo ficou estreito de propósito, para um interpretador no navegador, não para um ciclo de build.
O que a plataforma faz por um projeto Node.js
Quase tudo aqui funciona sem configuração.
npm install no build
As dependências do package.json são instaladas quando a imagem é construída, não a cada boot. Uma falha de instalação aparece no log do build, dentro do teto de 5 minutos, em vez de virar crash em produção.
Três versões de Node.js
24.5.0, 22.18.0 (recomendada) e 20.18.0. Trocar é mudar VERSION no vertracloud.config e subir de novo — não há imagem para escolher nem Dockerfile para manter.
MAIN e START decidem o processo
Sem START, a plataforma executa o arquivo apontado por MAIN. Com START=npm start, ela usa o script do package.json — é assim que projetos com flag de runtime ou pré-passo de bundle sobem sem gambiarra.
Auto-restart com freio
O processo que cai é reiniciado sozinho, em qualquer plano: exceção não tratada não derruba o serviço. Se ele quebrar 5 vezes em 10 minutos, o auto-restart é desativado por 24 horas, e o último stack trace fica salvo no log de crash.
O que as pessoas rodam em Node.js aqui
Metade do que sobe aqui é bot; a outra metade atende HTTP. É o package.json que decide qual dos dois.
Bots de Discord e Telegram
discord.js, telegraf e whatsapp-web.js rodam como processo de background, sem porta HTTP. O token vai nas variáveis de ambiente do painel, nunca num .env dentro do zip.
APIs Express, Fastify e Nest
Publique a aplicação para receber um subdomínio em vertraweb.app com TLS. O servidor precisa escutar em 0.0.0.0 na porta declarada em PORT — bind em localhost devolve timeout.
Workers de fila e cron
Consumidor de BullMQ, rotina agendada com node-cron, sincronização periódica: processos longos que só precisam ficar de pé. O auto-restart cobre a queda ocasional de rede.
Automação com banco gerenciado
Crie um MongoDB 8.0.11 ou um Redis 7 no mesmo painel e conecte com mongoose ou ioredis pelo host interno. TLS é obrigatório em todos os bancos, e o certificado e a senha ficam disponíveis para download no painel.
Versões de Node.js disponíveis
22.18.0 é a recomendada; a 24.5.0 é a mais recente e a 20.18.0 atende quem ainda depende de um módulo nativo antigo. Declare VERSION no vertracloud.config para fixar uma delas.
| Versão | vertracloud.config | Status |
|---|---|---|
| Node.js 24.5.0 | VERSION=24 | Mais recente |
| Node.js 22.18.0 | VERSION=22 | Recomendada |
| Node.js 20.18.0 | VERSION=20 |
A configuração inteira
O vertracloud.config é um arquivo INI opcional na raiz do projeto. MAIN aponta o arquivo de entrada; START troca por um script do package.json; BUILD roda uma vez por deploy antes de o app subir (ex.: npm run build, para quem usa um framework como Next.js); VERSION escolhe o Node.js; MEMORY define o teto de RAM.
NAME=meu-bot
MAIN=index.js
START=npm start
VERSION=22
MEMORY=512Um plano para cada fase do projeto
A memória e o armazenamento mudam por plano; a linguagem, não. Compare o que cada plano libera e escolha o que cabe no projeto agora.
Comparar planosTambém roda aqui
Mesma plataforma, mesmo deploy, outra stack.
Perguntas frequentes sobre hospedagem Node.js
Os erros que mais aparecem no primeiro deploy de um projeto Node.js.
A aplicação sobe e quebra com Cannot find module. O que houve?
O pacote não está em dependencies do package.json — normalmente ele ficou em devDependencies, que não é instalado no build. Mova a dependência de execução para dependencies e faça o deploy de novo.
O log diz missing script: start. Como resolver?
Você declarou START=npm start, mas o package.json não tem esse script. Adicione "start": "node index.js" em scripts, ou remova o START e deixe o MAIN apontar o arquivo de entrada.
Recebi Cannot use import statement outside a module ou ERR_REQUIRE_ESM.
São os dois lados do mesmo conflito de formato. Para usar import, adicione "type": "module" ao package.json; se um pacote só publica ESM e o seu código é CommonJS, migre para ESM ou fixe uma versão antiga, como node-fetch@2.
O build falha com ERESOLVE ou com erro de módulo nativo.
Para o ERESOLVE, crie um .npmrc na raiz com legacy-peer-deps=true. Para módulo nativo como better-sqlite3, não envie node_modules no zip: a plataforma compila para Linux, e o binário da sua máquina não serve.
O .env do meu projeto é lido?
Não. A plataforma não carrega arquivo .env: as variáveis são cadastradas na aba de variáveis de ambiente do painel e injetadas no container. É o que evita subir token de bot dentro do zip.
Suba seu projeto Node.js hoje
Crie a conta, envie um zip sem node_modules ou conecte o repositório do GitHub, e acompanhe o npm install no terminal do painel.
Criar conta