Skip to main content
O cube.json fica na raiz do .zip e diz à Cube como rodar o seu projeto. Ele é opcional no painel (que detecta sozinho e mostra para você conferir), mas deixa o envio pela API automático.
cube.json

Chaves

"node" | "python"
obrigatório
A linguagem do projeto.
string
obrigatório
O comando que inicia o projeto, como node index.js, npm start ou python main.py. De 1 a 500 caracteres, numa linha só. Ele roda dentro da pasta do projeto.
string
O nome que aparece no painel, de 1 a 40 caracteres. Sem ele, vale o nome do arquivo .zip.
"bot" | "site"
padrão:"bot"
bot é um processo sem endereço na internet (bots de Discord, workers, tarefas). site é um site ou API que recebe visitas por HTTPS. Veja Sites e APIs.
string
A versão da linguagem. Node.js: "20", "22" ou "24". Python: "3.11" ou "3.12". Sem ela, vale a mais nova.
integer
A memória do projeto, em MB. O mínimo é 100 para bot e 512 para site, e esse também é o valor padrão. A soma da memória de todos os seus projetos não pode passar a do plano. No Free, a conta tem 100 MB no total: um bot que pede mais é recusado com insufficient_memory.
integer
padrão:"8080"
Só para site: a porta em que o seu app escuta, de 1024 a 65535. O app recebe o mesmo número na variável PORT.
string
Só para site: o nome em nome.cubehost.dev. De 3 a 32 caracteres, com letras minúsculas, números e hífen. Sem ele, a Cube gera um a partir do nome do projeto. Veja Endereço e domínios.
string
Um comando que roda depois de instalar as dependências, como npm run build. Sem a chave, o build é automático: se o package.json tem um script build, ele roda. Use "" para não rodar nenhum build.
Chave desconhecida é recusada com o erro invalid_config, dizendo qual chave. Assim um erro de digitação não passa calado. port e subdomain num bot também são recusados.

Exemplos

cube.json

Onde o cube.json vale

  • No painel: ele preenche a tela Configure o projeto. O que você confirma na tela é o que fica valendo.
  • Na API: se o formulário do envio trouxer language e command, o formulário vale e o cube.json é ignorado. Sem eles, vale o cube.json. Sem nenhum dos dois, o envio é recusado com missing_config.
  • Pasta dentro do .zip: se o .zip tiver uma única pasta no topo e nenhum cube.json na raiz, essa pasta vira a raiz. Isso cobre o “Compactar” do Windows e do macOS.
A configuração fica guardada no projeto depois do primeiro envio. Um cube.json diferente num novo .zip do mesmo projeto é ignorado. Para mudar nome, comando, versão, memória ou subdomínio, use Configurações no projeto. Tipo, linguagem e porta não mudam: para isso, crie um projeto novo.