Hospedagem Node.js
Envie o projeto num .zip e a Cube instala as dependências com npm, compila o TypeScript e põe no ar. Bot de Discord, site ou API no mesmo plano, a partir de R$ 5,99 por mês no Pix, sem fidelidade.
Node.js para bots, sites e APIsDo bot à API, com o mesmo Node.js.
O que roda com node na sua máquina roda aqui. Você escolhe o tipo no envio, e cada projeto reserva a própria memória dentro da RAM do plano.
Bots de Discord
discord.js e outras bibliotecas que conectam e ficam ouvindo. O bot não abre porta: basta o comando de início, e ele fica no ar dia e noite, voltando sozinho se cair nos planos pagos.
APIs e back-ends
Express, Fastify, Koa ou Hono respondendo em nome.cubehost.dev, com HTTPS. O app só precisa escutar em 0.0.0.0, na porta da variável PORT.
Sites com Next.js
O npm run build roda a cada envio, e o next start já sobe na porta da variável PORT. Páginas, rotas de API e renderização no servidor ficam no mesmo projeto.
TypeScript
Deixe o script build no package.json e aponte o comando para o JavaScript compilado. O tsc roda depois das dependências, sem nenhum passo manual no servidor.
Node.js 20, 22 e 24 com npmSua versão, suas dependências.
Nada de instalar Node.js, configurar o PATH ou rodar npm por SSH. O projeto já sobe com isso resolvido.
A versão vem do cube.json ou do campo Versão em Novo projeto; sem nenhuma, entra a mais nova. A instalação é com npm e traz as devDependencies, onde costumam ficar o TypeScript e as ferramentas de build. O yarn.lock e o pnpm-lock.yaml ficam de fora.
A instalação roda à parte e não gasta a memória do plano, então um npm install pesado não aperta os projetos que já estão no ar. E ela só roda de novo quando o package.json, o package-lock.json ou a versão mudam: mexeu só no código, o projeto reinicia com o que já estava instalado.
- Node.js
- 20, 22 e 24
- Sem versão escolhida
- Node.js 24
- Com package-lock.json
- npm ci
- Sem package-lock.json
- npm install
- Build
- npm run build, se existir
- NODE_ENV
- production
Como hospedar um projeto Node.jsDo package.json ao projeto no ar.
O caminho é o mesmo para bot, site ou API. Muda só o tipo e, no site, a porta.
Deixe o package.json pronto.
Liste as dependências e, em TypeScript, o script
build, como no exemplo. Rodenpm installuma vez para gerar opackage-lock.json: com ele, a instalação usa exatamente as versões que você testou.Compacte com o cube.json.
Na raiz do .zip, o
cube.jsondiz o tipo, a versão, o comando de início e a memória. Deixenode_modulese.envde fora: o .zip pode ter até 10 MB nos planos pagos e 5 MB no Free. Semcube.json, o painel lê o package.json e sugere o resto.Envie pelo painel ou pela API.
Solte o .zip em Novo projeto e acompanhe o npm nos Logs. Para publicar do seu CI, crie uma chave de Leitura e escrita em Chaves de API e envie o .zip por ela: o exemplo em Pela API, logo abaixo, mostra o código.
package.json · API em TypeScript
{ "name": "minha-api", "type": "module", "scripts": { "build": "tsc", "start": "node dist/server.js" }, "dependencies": { "fastify": "^5.0.0" }, "devDependencies": { "typescript": "^5.6.0" }}cube.json · API em TypeScript
{ "name": "minha-api", "type": "site", "language": "node", "version": "24", "command": "node dist/server.js", "memoryMb": 512}O build roda sozinho. Com o script build no package.json, o cube.json não precisa dizer nada. Para outro comando, use a chave build; para não compilar, "build": "".
Como hospedar seu botFaça deploy
hoje
Zipe a pasta, envie pelo painel ou pela API e pronto. A Cube instala as dependências, põe o projeto no ar e entrega o HTTPS.
- Node 20, 22 e 24, Python 3.11 e 3.12
- npm install e pip install só rodam de novo se as dependências mudarem
- Sites e APIs ganham nome.cubehost.dev com HTTPS
# na pasta do projeto, sem node_moduleszip -r minha-api.zip . -x "node_modules/*" ".env"# depois arraste o minha-api.zip em# Painel → Projetos → Novo projetoQuanto de RAM um app Node.js precisa100 MB para um bot, 512 MB para um site.
Cada projeto reserva a memória que você escolhe, a partir de 100 MB para um bot e 512 MB para um site ou uma API. A soma nunca passa da RAM do plano, e você divide como quiser.
No Block, com 1 GB, cabem por exemplo uma API e 5 bots. Nos primeiros dias, olhe o gráfico de memória na página do projeto: se o pico chegar perto do teto, aumente em Configurações e reinicie, sem reenviar o .zip.
| Plano | RAM | vCPU | Bots de 100 MB | Sites e APIs de 512 MB | Por mês |
|---|---|---|---|---|---|
| FreeEm breve | 100 MB | 0,25 | 1 | — | R$ 0 |
| Block | 1 GB | 1 | 10 | 2 | R$ 5,99 |
| Stack | 2 GB | 2 | 20 | 4 | R$ 10,99 |
| Tower | 4 GB | 3 | 40 | 8 | R$ 23,99 |
| Fortress | 8 GB | 4 | 81 | 16 | R$ 47,99 |
| Empresas | Sob medida | Sob medida | Sob medida | Sob medida | Sob consulta |
Hospedagem Node.jsPerguntas frequentes.
O que costuma travar quando um projeto Node.js sai da sua máquina.
Posso usar yarn ou pnpm?
A instalação é sempre com npm. Com package-lock.json na raiz roda o npm ci, que respeita as versões travadas; sem ele, o npm install. O yarn.lock e o pnpm-lock.yaml são ignorados: rode npm install uma vez na sua máquina para gerar o package-lock.json e envie junto.
Qual versão do Node.js entra se eu não escolher?
A mais nova, o Node.js 24. Para fixar outra, ponha "version": "20" ou "22" no cube.json ou escolha em Novo projeto. Trocar a versão depois, em Configurações, reinstala as dependências no próximo início.
Preciso mandar a pasta node_modules no .zip?
Não. A Cube instala tudo a partir do package.json, e uma node_modules que venha no .zip é ignorada. Sem ela, o .zip fica pequeno: o limite é de 10 MB nos planos pagos e de 5 MB no Free.
Como uso o meu arquivo .env?
Deixe o .env fora do .zip e cole o conteúdo dele em Configurações › Variáveis › Importar .env: cada linha vira uma variável cifrada, lida com process.env.NOME. Se o código chama o dotenv, tudo bem: sem o arquivo, ele não muda nada.
Mudei o cube.json e enviei o .zip de novo. Por que nada mudou?
Porque o cube.json só vale quando o projeto é criado. No envio de um código novo, a configuração fica como estava: para trocar o comando, a versão ou a memória, use Configurações › Geral e reinicie o projeto.
O que acontece se o app passar da memória reservada?
O processo é encerrado. Nos planos pagos ele volta sozinho, e Cube AI diz se a queda foi por falta de memória. Se acontecer sempre, olhe o pico no gráfico de memória da página do projeto e aumente em Configurações, sem reenviar o .zip.
Seu primeiro deploy leva menos que um café.
Crie a conta, envie o .zip e o bot está no ar antes de a xícara esfriar. Sem cartão de crédito: os planos são pagos no Pix, mês a mês.