go.mod, roda o go build e inicia o programa que sai dele. Você envia o código-fonte, sem o binário.
main.go
go.mod
go.mod na raiz sobe sem cube.json: a Cube entende que é Go e cria um bot. Para um site, uma versão ou a memória, use o cube.json (o command é opcional):
cube.json
Como funciona
- Módulos:
go mod downloadquando ogo.modou ogo.summudam. O cache dos módulos e o da compilação ficam na pasta do projeto, entre um envio e outro, e contam no espaço dele; o segundo envio compila em segundos. - Build:
go buildda pasta do arquivo principal para o programa/dados/bin/app, fora da pasta do código. Sem arquivo principal, a pasta compilada é a raiz do .zip. Com o main emcmd/bot/main.go, escolha esse arquivo no Novo projeto (o painel já mostra omain.goda raiz e os decmd/) ou em Configurações › Geral; trocar o arquivo compila de novo no próximo início. - Início: o comando é o programa,
/dados/bin/app. Para passar opções, ponha no comando de início:/dados/bin/app -config prod.yml. - Build próprio: o
builddocube.jsonvale no lugar do automático, desde que gere o/dados/bin/app(por exemplo,go build -tags prod -o /dados/bin/app ./cmd/bot). - O
cgofunciona: o compilador de C vem junto.
discordgo e o net/http compila em pouco mais de 1 minuto no primeiro envio e em segundos depois.
Versões e memória
- Go 1.27 (a padrão) e Go 1.26, hoje com o compilador 1.27.1 e 1.26.8. A diretiva
godogo.modé a versão mínima, com a correção: umgo 1.27não compila no 1.26, umgo 1.27.2não compila no 1.27.1, e a Cube nunca baixa outro compilador (o erro aparece nos logs da instalação). O Novo projeto avisa embaixo da Versão quando ogo.modpede mais que o compilador da Cube. - A memória segue o mínimo do tipo no plano (bot 256 MB nos pagos e 100 MB no Free; site 512 MB). A Cube põe o
GOMEMLIMITem 90% da memória do projeto, para o coletor de lixo apertar antes do teto. Uma variávelGOMEMLIMITsua vale no lugar.
Problemas comuns
go: go.mod file not found: o .zip não tem ogo.modna raiz. Rodego mod init <nome>ego mod tidye envie de novo.no Go files in /dados/app: o main não está na raiz. Escolha o arquivo principal (comocmd/bot/main.go) em Configurações › Geral.go.mod requires go >= 1.28: ogo.modpede uma versão que a Cube ainda não tem. Baixe a diretivagopara1.27(ou a versão escolhida no projeto).go.mod requires go >= 1.27.2 (running go 1.27.1; GOTOOLCHAIN=local): ogo.modpede uma correção mais nova que a do compilador da Cube. Acontece quando umgo getde uma dependência sobe a linhagosozinho. Mude a linha parago 1.27.1(a do compilador, que aparece na mensagem) e envie de novo, ou edite ogo.modna aba Arquivos e clique em Aplicar mudanças.

