cube faz pelo terminal o que a API pública faz: listar e ver projetos, enviar a pasta do projeto, acompanhar os logs, iniciar, parar e reiniciar, e gravar variáveis de ambiente. Ela usa a sua chave de API, com as mesmas permissões e limites.
Instalar
Precisa do Node.js 20 ou mais novo, no macOS, no Linux, no WSL ou no Windows.cube --version. Para atualizar, rode o mesmo comando de novo.
A CLI é instalada por este endereço do site da Cube, e não pelo nome de um pacote do npm: um pacote com nome parecido no npm não é da Cube. Para travar uma versão (no CI, por exemplo), use o endereço com o número, como
https://cubehosting.com.br/cli/cube-cli-0.1.2.tgz.Entrar
Crie uma chave em Chaves de API no painel. Leitura basta para ver projetos e logs; para enviar, iniciar, parar, reiniciar e mexer nas variáveis, use uma de leitura e escrita.cube logout apaga a chave deste computador. Ela continua valendo até você revogar em Chaves de API.
Comandos
O
<id> é o ID do projeto: está em cube projects e no topo da página do projeto no painel.
Opções de cube logs:
As linhas de
stderr saem na saída de erro do terminal. O log passa por um filtro que tira as sequências de controle do terminal (cores, título da janela), como no painel.
Variáveis sem deixar rastro
cube vars set <id> TOKEN=valor deixa o valor no histórico do terminal. Para evitar, passe só o nome: a CLI pede o valor sem mostrar na tela.
printf '%s' "$TOKEN" | cube vars set <id> DISCORD_TOKEN. A entrada padrão dá o valor de um nome só por comando; nome que fica sem valor é recusado, sem gravar nada (para gravar vazio, use NOME=). Variável nova ou trocada vale na próxima subida: a CLI avisa quando é preciso cube restart.
Enviar com cube deploy
- Confere o limite do .zip do seu plano (5 MB no Free, 10 MB nos pagos).
- Compacta a pasta, deixando de fora o que o
.gitignoree o.cubeignoremandam (os da pasta e das subpastas, e também os das pastas acima até a raiz do repositório git, como faz o git), e as pastas que a Cube ignora de qualquer jeito (node_modules,.git,venv,.venv,__pycache__). Se passar do limite, para antes de enviar e mostra os maiores arquivos. - Envia como um novo código do projeto: a configuração não muda, e as dependências só são reinstaladas se o
package.json, opackage-lock.jsonou orequirements.txtmudaram. - Mostra a instalação ao vivo até o projeto sair de “Instalando”. Se ele subiu, confere por mais 15 segundos se continua no ar.
- Sai com o código 0 se o projeto ficou no ar (ou parado, se estava parado) e 1 se a instalação falhou ou se o app caiu, reiniciou ou parou nesses 15 segundos (um token errado, por exemplo). Uma queda depois disso não muda o resultado: acompanhe com
cube logs <id> --follow.
--no-wait envia e termina sem esperar a instalação.
Sem --project, o cube deploy cria um projeto novo a partir do cube.json da pasta, e já inicia. Sem cube.json, ele não envia nada. No fim, mostra o ID do projeto novo para os próximos envios.
O .cubeignore
Mesmo formato do.gitignore, na raiz ou em qualquer subpasta, lido depois do .gitignore da mesma pasta. Use para deixar de fora o que o git guarda mas o servidor não precisa, ou para trazer de volta, com !, algo que o .gitignore deixa de fora.
.cubeignore
Erros
Todo erro sai em português, com o código da API e o link de como resolver:cube deploy faz 5 pedidos, mais 1 a cada 20 segundos de instalação.
