> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Runtimes

> Como a Square Cloud constrói e executa seu código: detecção de linguagem, resolução de dependências, containers isolados e o ferramental embutido em cada imagem de runtime.

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](/pt-br/getting-started/config-file); 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

<CardGroup cols={3}>
  <Card title="JavaScript" icon="node-js" href="../articles/getting-started-with-nodejs" />

  <Card title="Python" icon="python" href="../articles/getting-started-with-python" />

  <Card title="Java" icon="java" href="../articles/getting-started-with-java" />

  <Card title="Rust" icon="rust" href="../articles/getting-started-with-rust" />

  <Card title="Elixir" icon="droplet" href="../articles/getting-started-with-elixir" />

  <Card title="PHP" icon="php" href="../articles/getting-started-with-php" />

  <Card title="Go" icon="golang" href="../articles/getting-started-with-go" />

  <Card title="C#" icon="c" href="../articles/getting-started-with-csharp" />

  <Card title="Ruby" icon="gem" href="../articles/getting-started-with-ruby" />
</CardGroup>

<Info>
  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.
</Info>

## 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.

Você também pode fixar uma versão exata para reprodutibilidade total entre deploys.

| Linguagem          | `recommended` | `latest` |
| ------------------ | ------------- | -------- |
| Node.js \[JS & TS] | 24.15.0       | 26.1.0   |
| Python             | 3.13.13       | 3.14.5   |
| Java               | JDK 25        | JDK 25   |
| Elixir             | 1.19.5        | 1.19.5   |
| Rust               | 1.95.0        | 1.95.0   |
| Ruby               | 4.0.4         | 4.0.4    |
| PHP                | 8.5.6         | 8.5.6    |
| Go                 | 1.26.3        | 1.26.3   |
| .NET/C#            | 10.0.8        | 10.0.8   |

<Tip>Fixar `recommended` garante atualizações de patch testadas automaticamente, sem quebras inesperadas. Consulte a referência do [arquivo de configuração](/pt-br/getting-started/config-file) para os campos `RUNTIME` e `VERSION`.</Tip>

## Como um deploy funciona

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

<Steps>
  <Step title="Detecção de linguagem" icon="magnifying-glass">
    A Square Cloud inspeciona os arquivos do seu upload e identifica a stack a partir dos sinais que já existem no seu projeto — um `package.json` para Node.js, um `requirements.txt` ou `pyproject.toml` para Python, um `go.mod` para Go, um `Gemfile` para Ruby, e assim por diante. Você pode sobrescrever a detecção explicitamente com o campo `RUNTIME`.
  </Step>

  <Step title="Resolução de dependências" icon="cube">
    Seu manifesto de dependências é instalado **no servidor**, dentro do ambiente de build. Você nunca envia `node_modules`, um virtualenv ou artefatos compilados dentro do `.zip` — a plataforma os resolve e instala para você, mantendo os uploads pequenos e os builds reproduzíveis.
  </Step>

  <Step title="Provisionamento" icon="server">
    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.
  </Step>

  <Step title="Inicialização" icon="play">
    O campo `MAIN` aponta para seu arquivo de entrada e a plataforma o executa com o interpretador correto. Precisa de uma etapa de build, um servidor estático ou um comando personalizado? Defina `START` e ele é executado literalmente.
  </Step>
</Steps>

## Dentro de cada imagem de runtime

Cada imagem é montada sobre uma base comum e auditada em segurança, garantindo que o ambiente seja consistente independentemente da linguagem que você faz deploy:

<CardGroup cols={2}>
  <Card title="Node.js 26 + ferramental de build" icon="node-js">
    Toda imagem embute o Node.js 26 ao lado da linguagem principal. Ferramentas de build em JS, pipelines de assets e utilitários estão sempre disponíveis, qualquer que seja sua stack.
  </Card>

  <Card title="ffmpeg e Chromium" icon="film">
    Processamento de mídia (ffmpeg) e um navegador headless (Chromium) já vêm instalados — prontos para bots de mídia, web scraping e geração de PDF ou screenshots, sem configuração extra.
  </Card>

  <Card title="Sem privilégios por padrão" icon="shield-halved">
    As aplicações rodam como um usuário não-root dentro de um container isolado. Uma dependência comprometida permanece contida — ela não tem acesso privilegiado ao host.
  </Card>

  <Card title="Sites estáticos, sem runtime" icon="file-code">
    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.
  </Card>
</CardGroup>

## 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

<CardGroup cols={2}>
  <Card title="Arquivo de configuração" icon="gear" href="/pt-br/getting-started/config-file">
    Domine `MAIN`, `START`, `RUNTIME`, `VERSION` e `MEMORY` — os campos que controlam seu runtime.
  </Card>

  <Card title="Guias por linguagem" icon="graduation-cap" href="/pt-br/articles/getting-started-with-nodejs">
    Configuração passo a passo para Node.js, Python, Go, Rust, Java e mais.
  </Card>
</CardGroup>
