Lenguajes soportados
JavaScript
Bun
Deno
Python
Java
Rust
Elixir
PHP
Go
C#
Ruby
HTML/CSS
Más allá de los lenguajes anteriores, la mayoría de los demás stacks y bibliotecas funcionan sin configuración adicional. Las imágenes de runtime están construidas para ser permisivas: si tu lenguaje se instala en Linux, es muy probable que funcione en Square Cloud.
Versiones
Cada runtime ofrece dos canales de actualización, seleccionables a través del campoVERSION en tu archivo de configuración:
recommended: la versión que reforzamos y ejecutamos en producción para la mayoría de las aplicaciones. Elígela a menos que tengas una razón específica para no hacerlo.latest: la versión más reciente, para equipos que necesitan una característica del lenguaje recién publicada.
VERSION solo acepta estos dos valores: cualquier otro valor, incluido un número de versión exacto, hace fallar el deploy con INVALID_VERSION.
Cómo funciona un deploy
Desde la subida hasta un proceso en vivo, cada deploy pasa por el mismo pipeline determinista:Detección de lenguaje
Square Cloud toma el lenguaje del campo
RUNTIME de tu archivo de configuración o, si no está definido, de la extensión del archivo MAIN: .js para Node.js, .ts para TypeScript, .py para Python, .go para Go, .jar para Java, y así sucesivamente. Después comprueba que el archivo de dependencias del lenguaje esté en la raíz de tu subida: package.json para Node.js y TypeScript, requirements.txt o pyproject.toml para Python, go.mod o go.work para Go, Cargo.toml para Rust, Gemfile para Ruby y mix.exs para Elixir. Si falta o está vacío, el deploy falla con INVALID_DEPENDENCY.Resolución de dependencias
Las dependencias se instalan del lado del servidor, dentro del contenedor, antes de que tu app inicie:
npm install cuando no hay una carpeta node_modules (una carpeta node_modules en la raíz de tu subida se descarta), pip install para Python, bundle install para Ruby y mix deps.get para Elixir, mientras que Go, Rust y .NET descargan sus paquetes al compilar tu código. No necesitas enviar node_modules ni un virtualenv dentro del .zip. Java es la excepción: el comando por defecto ejecuta un JAR que tú compilaste (java -jar MAIN), así que sube el .jar compilado.Aprovisionamiento
Se crea un contenedor aislado con la CPU y la memoria declaradas en tu archivo de configuración. Los recursos se aplican a nivel del kernel, de modo que una aplicación nunca puede privar a otra en el mismo host.
Inicio
Sin
START, Square Cloud ejecuta el comando por defecto del lenguaje, como node MAIN, python MAIN, go run MAIN o java -jar MAIN (Rust y Elixir compilan y ejecutan todo el proyecto con cargo run --release y mix run --no-halt). ¿Necesitas un paso de compilación o un comando personalizado? Define START y se ejecuta tal cual.Dentro de cada imagen de runtime
Cada imagen parte de la imagen oficial de su lenguaje y añade las herramientas del sistema que las aplicaciones suelen necesitar:Node.js y Python juntos
Las apps de Node.js y Python se ejecutan sobre la misma imagen, que incluye Node.js y Python 3.14, así que un bot puede llamar a un script escrito en el otro lenguaje. La imagen de PHP también incluye Node.js 24 y npm para compilar assets.
ffmpeg y Chromium
ffmpeg viene preinstalado en las imágenes de Node.js, Python, Java, Go, Rust, Ruby, Elixir y .NET, y la imagen de Node.js y Python también incluye Chromium headless, listos para bots de medios, web scraping y generación de PDF o capturas de pantalla sin configuración adicional.
Sin privilegios por defecto
Las aplicaciones se ejecutan como un usuario no root dentro de un contenedor aislado. Una dependencia comprometida permanece contenida, sin acceso privilegiado al host.
Sitios estáticos, sin runtime
¿No necesitas un intérprete? Define
RUNTIME=static para servir un sitio HTML/CSS/JS simple directamente, con la misma CDN y TLS que cualquier otra aplicación.Aislamiento y seguridad
Cada aplicación es un contenedor completamente aislado con límites de CPU y memoria aplicados por el kernel, nunca un proceso compartido. Ejecutarse sin privilegios significa que una aplicación no puede alcanzar el host ni a sus vecinas, y los topes de recursos garantizan que un pico en un proyecto no tenga ningún efecto sobre el rendimiento de otro. Este es el mismo modelo que permite a Square Cloud alojar decenas de miles de cargas de trabajo en clústeres compartidos sin que interfieran entre sí.Próximos pasos
Archivo de configuración
Domina
MAIN, START, RUNTIME, VERSION y MEMORY: los campos que controlan tu runtime.Guías por lenguaje
Configuración paso a paso para Node.js, Bun, Deno, Python, Go, Rust, Java, HTML estático y más.

