Skip to main content
Un runtime en Square Cloud es el entorno completo y aislado dentro del cual se ejecuta tu aplicación: el intérprete del lenguaje o la máquina virtual, las bibliotecas del sistema con las que se enlaza, las herramientas a las que puede recurrir y la frontera de seguridad que la mantiene separada de todas las demás aplicaciones del host. Nunca construyes ni mantienes ese entorno. Tú envías tu código fuente y un pequeño archivo de configuración; Square Cloud detecta el lenguaje, resuelve tus dependencias, aprovisiona un contenedor aislado y lo ejecuta. El mismo pipeline impulsa bots de Discord/WhatsApp/Telegram, sitios web y APIs, workers en segundo plano y servicios de larga duración, sobre la misma infraestructura rápida y reforzada.

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 campo VERSION 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.
Elige recommended a menos que necesites una característica que solo tiene latest. Consulta la referencia del archivo de configuración para los campos RUNTIME y 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.