Skip to main content
A runtime on Square Cloud is the complete, isolated environment your application runs inside: the language interpreter or virtual machine, the system libraries it links against, the tooling it can shell out to, and the security boundary that keeps it separated from every other application on the host. You never build or maintain that environment. You ship your source code and a small configuration file; Square Cloud detects the language, resolves your dependencies, provisions an isolated container and runs it. The same pipeline powers Discord/WhatsApp/Telegram bots, websites and APIs, background workers and long-running services, on the same fast, hardened infrastructure.

Supported languages

JavaScript

Python

Java

Rust

Elixir

PHP

Go

C#

Ruby

Beyond the languages above, most other stacks and libraries run out of the box. The runtime images are built to be permissive: if your language installs on Linux, it very likely runs on Square Cloud.

Versions

Every runtime ships two update channels, selectable through the VERSION field in your configuration file:
  • recommended — the version we harden and run in production for the majority of applications. Choose it unless you have a specific reason not to.
  • latest — the newest release, for teams that need a just-shipped language feature.
You can also pin an exact version for full reproducibility across deploys.
Languagerecommendedlatest
Node.js [JS & TS]24.15.026.1.0
Python3.13.133.14.5
JavaJDK 25JDK 25
Elixir1.19.51.19.5
Rust1.95.01.95.0
Ruby4.0.44.0.4
PHP8.5.68.5.6
Go1.26.31.26.3
.NET/C#10.0.810.0.8
Pinning recommended gives you automatic, tested patch updates without surprise breaking changes. See the configuration file reference for the RUNTIME and VERSION fields.

How a deploy works

From upload to a live process, every deploy runs through the same deterministic pipeline:

Language detection

Square Cloud inspects the files in your upload and identifies the stack from the signals that already exist in your project — a package.json for Node.js, a requirements.txt or pyproject.toml for Python, a go.mod for Go, a Gemfile for Ruby, and so on. You can override detection explicitly with the RUNTIME field.

Dependency resolution

Your dependency manifest is installed server-side, inside the build environment. You never ship node_modules, a virtualenv or compiled artifacts inside the .zip — the platform resolves and installs them for you, keeping uploads small and builds reproducible.

Provisioning

An isolated container is created with the CPU and memory declared in your configuration file. Resources are enforced at the kernel level, so one application can never starve another on the same host.

Start

The MAIN field points at your entry file and the platform launches it with the correct interpreter. Need a build step, a static server or a custom command? Set START and it runs verbatim.

Inside every runtime image

Each image is layered on a common, security-audited base, so the environment is consistent no matter which language you deploy:

Node.js 26 + build tooling

Every image bundles Node.js 26 alongside the primary language. JS-based build tools, asset pipelines and utilities are always available, whatever your stack.

ffmpeg & Chromium

Media processing (ffmpeg) and a headless browser (Chromium) are preinstalled — ready for media bots, web scraping, and PDF or screenshot generation without extra setup.

Unprivileged by default

Applications run as a non-root user inside an isolated container. A compromised dependency stays contained — it has no privileged access to the host.

Static sites, no runtime

No interpreter needed? Set RUNTIME=static to serve a plain HTML/CSS/JS site directly, with the same CDN and TLS as any other application.

Isolation and security

Every application is a fully isolated container with kernel-enforced CPU and memory limits — never a shared process. Running unprivileged means an application cannot reach the host or its neighbors, and resource caps guarantee that a spike in one project has no effect on the performance of another. This is the same model that lets Square Cloud host tens of thousands of workloads on shared clusters without them interfering with each other.

Next steps

Configuration file

Master MAIN, START, RUNTIME, VERSION and MEMORY — the fields that control your runtime.

Language guides

Step-by-step setup for Node.js, Python, Go, Rust, Java and more.