Skip to main content
Um runtime na Square Cloud é o ambiente completo e isolado onde sua aplicação roda: o interpretador da linguagem ou máquina virtual, as bibliotecas de sistema às quais ela se vincula, o ferramental que ela pode invocar e a fronteira de segurança que a mantém separada de todas as outras aplicações no host. Você nunca constrói nem mantém esse ambiente. Você envia seu código-fonte e um pequeno arquivo de configuração; a Square Cloud detecta a linguagem, resolve suas dependências, provisiona um container isolado e o executa. O mesmo pipeline sustenta bots de Discord/WhatsApp/Telegram, sites e APIs, workers em segundo plano e serviços de longa duração, sobre a mesma infraestrutura rápida e blindada.

Linguagens suportadas

JavaScript

Bun

Deno

Python

Java

Rust

Elixir

PHP

Go

C#

Ruby

HTML/CSS

Além das linguagens acima, a maioria das outras stacks e bibliotecas funciona nativamente. As imagens de runtime são construídas para serem permissivas: se sua linguagem instala no Linux, é muito provável que ela rode na Square Cloud.

Versões

Cada runtime oferece dois canais de atualização, selecionáveis pelo campo VERSION no seu arquivo de configuração:
  • recommended: a versão que blindamos e executamos em produção para a maioria das aplicações. Escolha-a a menos que tenha um motivo específico para não fazê-lo.
  • latest: a release mais recente, para times que precisam de um recurso de linguagem recém-lançado.
VERSION aceita apenas esses dois valores: qualquer outro valor, incluindo um número de versão exato, faz o deploy falhar com INVALID_VERSION.
Escolha recommended, a menos que precise de um recurso que só o latest tem. Consulte a referência do arquivo de configuração para os campos RUNTIME e VERSION.

Como um deploy funciona

Do upload até um processo no ar, todo deploy passa pelo mesmo pipeline determinístico:

Detecção de linguagem

A Square Cloud identifica a linguagem pelo campo RUNTIME do seu arquivo de configuração ou, quando ele não está definido, pela extensão do arquivo MAIN: .js para Node.js, .ts para TypeScript, .py para Python, .go para Go, .jar para Java, e assim por diante. Em seguida, ela verifica se o arquivo de dependências da linguagem está na raiz do seu upload: package.json para Node.js e TypeScript, requirements.txt ou pyproject.toml para Python, go.mod ou go.work para Go, Cargo.toml para Rust, Gemfile para Ruby e mix.exs para Elixir. Se ele estiver ausente ou vazio, o deploy falha com INVALID_DEPENDENCY.

Resolução de dependências

As dependências são instaladas no servidor, dentro do container, antes de a sua aplicação iniciar: npm install quando não há pasta node_modules (uma pasta node_modules na raiz do seu upload é descartada), pip install para Python, bundle install para Ruby e mix deps.get para Elixir, enquanto Go, Rust e .NET baixam seus pacotes ao compilar o seu código. Você não precisa enviar node_modules nem um virtualenv dentro do .zip. Java é a exceção: o comando padrão executa um JAR que você compilou (java -jar MAIN), então envie o .jar compilado.

Provisionamento

Um container isolado é criado com a CPU e a memória declaradas no seu arquivo de configuração. Os recursos são aplicados no nível do kernel, de modo que uma aplicação nunca consegue sufocar outra no mesmo host.

Inicialização

Sem START, a Square Cloud executa o comando padrão da linguagem, como node MAIN, python MAIN, go run MAIN ou java -jar MAIN (Rust e Elixir compilam e executam o projeto inteiro com cargo run --release e mix run --no-halt). Precisa de uma etapa de build ou de um comando personalizado? Defina START e ele é executado literalmente.

Dentro de cada imagem de runtime

Cada imagem parte da imagem oficial da sua linguagem e adiciona as ferramentas de sistema de que as aplicações costumam precisar:

Node.js e Python juntos

Aplicações Node.js e Python rodam na mesma imagem, que traz tanto o Node.js quanto o Python 3.14, então um bot pode chamar um script escrito na outra linguagem. A imagem de PHP também inclui o Node.js 24 e o npm para o build de assets.

ffmpeg e Chromium

O ffmpeg vem pré-instalado nas imagens de Node.js, Python, Java, Go, Rust, Ruby, Elixir e .NET, e a imagem de Node.js e Python também inclui o Chromium headless, pronto para bots de mídia, web scraping e geração de PDF ou screenshots, sem configuração extra.

Sem privilégios por padrão

As aplicações rodam como um usuário não-root dentro de um container isolado. Uma dependência comprometida permanece contida, sem acesso privilegiado ao host.

Sites estáticos, sem runtime

Não precisa de interpretador? Defina RUNTIME=static para servir um site em HTML/CSS/JS puro diretamente, com o mesmo CDN e TLS de qualquer outra aplicação.

Isolamento e segurança

Cada aplicação é um container totalmente isolado com limites de CPU e memória aplicados pelo kernel, nunca um processo compartilhado. Rodar sem privilégios significa que uma aplicação não consegue alcançar o host nem seus vizinhos, e os limites de recursos garantem que um pico em um projeto não tenha efeito algum sobre o desempenho de outro. É o mesmo modelo que permite à Square Cloud hospedar dezenas de milhares de cargas de trabalho em clusters compartilhados sem que interfiram entre si.

Próximos passos

Arquivo de configuração

Domine MAIN, START, RUNTIME, VERSION e MEMORY: os campos que controlam seu runtime.

Guias por linguagem

Configuração passo a passo para Node.js, Bun, Deno, Python, Go, Rust, Java, HTML estático e mais.