Skip to main content

O que é o arquivo de configuração?

O arquivo de configuração diz à Square Cloud como executar a sua aplicação: qual arquivo iniciar, quanta memória reservar, qual versão do runtime usar e, para um site, qual subdomínio publicar. É um arquivo de texto simples, com um par CHAVE=VALOR por linha.
squarecloud.app

Criando o arquivo de configuração

Crie um arquivo chamado squarecloud.app ou squarecloud.config na raiz do seu projeto. Os dois nomes funcionam do mesmo jeito. Quando você envia um zip, o arquivo precisa ficar no nível mais alto do zip, não dentro de uma subpasta; caso contrário, o deploy falha com MISSING_CONFIG.
No macOS, recomendamos o nome squarecloud.config.
A extensão para VS Code autocompleta todas as chaves abaixo e sublinha valores inválidos enquanto você digita.

Parâmetros de configuração

MEMORY, VERSION e DISPLAY_NAME são sempre obrigatórios. MAIN é obrigatório, a menos que você defina RUNTIME. Os parâmetros editáveis podem ser alterados no dashboard depois do deploy. Alterar um parâmetro não editável exige enviar a aplicação de novo.

MAIN

O arquivo que inicia a sua aplicação, relativo à raiz do projeto.
  • A extensão do arquivo escolhe o runtime: .js roda no Node.js, .ts no TypeScript, .py no Python, e assim por diante.
  • O arquivo precisa existir no seu upload e não pode estar vazio.
  • Até 32 caracteres: letras, dígitos, _, ., / e -, sem espaços.
Um MAIN ausente (sem RUNTIME) falha com MISSING_MAIN; um arquivo que não existe, não tem extensão ou quebra as regras acima falha com INVALID_MAIN.

MEMORY

A RAM reservada para a sua aplicação, em megabytes. Ela também define as vCPUs e a banda da sua aplicação.
O valor precisa ser pelo menos o mínimo para o seu tipo de projeto e não pode passar da RAM que o seu plano ainda tem livre. Caso contrário, o deploy falha com INSUFFICIENT_MEMORY.

VERSION

A versão do runtime: recommended ou latest. Qualquer outro valor, inclusive um número de versão exato, faz o deploy falhar com INVALID_VERSION.
Use recommended, a menos que você precise de um recurso que só a versão mais nova tem. As versões por trás de cada valor estão na tabela de versões dos runtimes.

DISPLAY_NAME

O nome exibido no dashboard, na CLI e na API.
Até 32 caracteres: letras sem acento, dígitos, espaços, - e _. Qualquer outro caractere, como letras acentuadas ou emojis, falha com INVALID_DISPLAY_NAME.

DESCRIPTION

Uma descrição curta da aplicação, com até 280 caracteres (acima disso, INVALID_DESCRIPTION).

AUTORESTART

Reinicia a aplicação automaticamente depois de uma falha. Aceita true ou false e vem como false por padrão, então ative-o em bots e em tudo o que precisa ficar online.
Um reinício automático só acontece quando tudo isto é verdade:
  • A aplicação saiu com status 1, o código de saída comum de um erro não tratado no Node.js e no Python.
  • Ela estava rodando havia pelo menos 60 segundos, para que uma aplicação que cai logo ao iniciar não fique reiniciando em loop.
  • Ela não foi reiniciada automaticamente na última hora.
  • Os logs não mostram um erro que um reinício não resolve: um token de bot inválido, um módulo ausente, um erro de sintaxe ou de tipo do TypeScript, ou uma instalação de dependências que falhou.
Um reinício mantém a aplicação online diante de um erro passageiro, mas o bug por trás dele ainda precisa ser corrigido no seu código. Veja também o artigo da central de ajuda sobre o auto restart.

SUBDOMAIN

Publica a aplicação como um site em https://<subdomain>.squareweb.app.
  • Até 63 caracteres: letras, dígitos e hifens, sem começar nem terminar com hífen. O nome é salvo em minúsculas.
  • Um nome já em uso, reservado (como admin ou api) ou inválido falha com INVALID_SUBDOMAIN.
  • Um site precisa de mais RAM do que um bot: veja a RAM mínima.
  • O seu servidor precisa escutar na porta 80 e no host 0.0.0.0 (veja o site não carrega).
Decida no primeiro upload se a aplicação é um site. Em um site, você pode mudar o subdomínio depois, mas não pode removê-lo (CANNOT_SET_SUBDOMAIN). Uma aplicação enviada sem SUBDOMAIN não pode virar um site: envie-a de novo como uma nova aplicação, com o SUBDOMAIN definido.
Para servir o site no seu próprio domínio, veja como configurar seu próprio domínio na central de ajuda.

RUNTIME

Define o runtime explicitamente, em vez de deduzi-lo da extensão do MAIN. Um valor desconhecido falha com INVALID_RUNTIME.
Com o RUNTIME definido, você pode deixar o MAIN de fora. Nesse caso, defina também o START: a maioria dos runtimes inicia a aplicação executando o arquivo do MAIN.

START

Um comando de start personalizado. Ele substitui o comando padrão, que executa o seu arquivo MAIN.
  • Até 256 caracteres (acima disso, INVALID_START).
  • As dependências continuam sendo instaladas antes de o comando rodar.
  • O comando é lido do arquivo a cada start, então você pode mudá-lo editando o squarecloud.app no dashboard e reiniciando.
Só chame scripts que existem no seu projeto. START=npm run build && npm run start, por exemplo, falha em uma aplicação Express sem um script build no package.json. Deixe o START de fora quando o comando padrão bastar.

ID

Você não escreve esta chave. Depois do squarecloud upload, a CLI da Square Cloud adiciona ID=<app ID> ao arquivo, para que os próximos comandos, como o squarecloud commit, saibam qual aplicação usar. A Square Cloud ignora essa chave no deploy.

Exemplos

Bot

squarecloud.app

Site ou API

squarecloud.app
O site responde em https://mysite.squareweb.app.

Next.js

Um framework que precisa de uma etapa de build usa o START. Aqui o MAIN só escolhe o runtime do Node.js, então aponte-o para o seu arquivo de configuração real (como next.config.mjs); os scripts de build e start vêm do package.json.
squarecloud.app

Próximos passos

Variáveis de ambiente

Mantenha tokens e strings de conexão fora do seu código e do seu zip.

squarecloud.ignore

Escolha quais arquivos a CLI e o VS Code deixam de fora do upload.

Runtimes

Versões, arquivos de dependências e como cada runtime inicia a sua aplicação.

Solução de problemas

O que cada erro de deploy significa e como corrigi-lo.