CubeHosting

Hospedagem Node.jsSeu projeto Node.jsno ar com um .zip.

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.

  1. Deixe o package.json pronto.

    Liste as dependências e, em TypeScript, o script build, como no exemplo. Rode npm install uma vez para gerar o package-lock.json: com ele, a instalação usa exatamente as versões que você testou.

  2. Compacte com o cube.json.

    Na raiz do .zip, o cube.json diz o tipo, a versão, o comando de início e a memória. Deixe node_modules e .env de fora: o .zip pode ter até 10 MB nos planos pagos e 5 MB no Free. Sem cube.json, o painel lê o package.json e sugere o resto.

  3. 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.

O cube.json na documentação

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.

  1. Node 20, 22 e 24, Python 3.11 e 3.12
  2. npm install e pip install só rodam de novo se as dependências mudarem
  3. 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 projeto
deploy · minha-apino ar em 2,4 s

    Quanto 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.

    PlanoRAMvCPUBots de 100 MBSites e APIs de 512 MBPor mês
    FreeEm breve100 MB0,251—R$ 0
    Block1 GB1102R$ 5,99
    Stack2 GB2204R$ 10,99
    Tower4 GB3408R$ 23,99
    Fortress8 GB48116R$ 47,99
    EmpresasSob medidaSob medidaSob medidaSob medidaSob 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.