Skip to main content
Un runtime su Square Cloud è l’ambiente completo e isolato all’interno del quale viene eseguita la tua applicazione: l’interprete del linguaggio o la macchina virtuale, le librerie di sistema a cui si collega, gli strumenti che può richiamare e il confine di sicurezza che la mantiene separata da ogni altra applicazione sull’host. Non compili né gestisci mai quell’ambiente. Tu carichi il tuo codice sorgente e un piccolo file di configurazione; Square Cloud rileva il linguaggio, risolve le tue dipendenze, provisiona un container isolato e lo esegue. La stessa pipeline alimenta bot Discord/WhatsApp/Telegram, siti web e API, worker in background e servizi a lunga esecuzione, sulla stessa infrastruttura veloce e rafforzata.

Linguaggi supportati

JavaScript

Bun

Deno

Python

Java

Rust

Elixir

PHP

Go

C#

Ruby

HTML/CSS

Oltre ai linguaggi elencati sopra, la maggior parte degli altri stack e librerie funziona già pronta all’uso. Le immagini runtime sono progettate per essere permissive: se il tuo linguaggio si installa su Linux, molto probabilmente funziona su Square Cloud.

Versioni

Ogni runtime offre due canali di aggiornamento, selezionabili tramite il campo VERSION nel tuo file di configurazione:
  • recommended: la versione che rafforziamo ed eseguiamo in produzione per la maggior parte delle applicazioni. Scegli questa a meno che tu non abbia una ragione specifica per non farlo.
  • latest: la release più recente, per i team che hanno bisogno di una funzionalità del linguaggio appena rilasciata.
VERSION accetta solo questi due valori: qualsiasi altro valore, incluso un numero di versione esatto, fa fallire il deploy con INVALID_VERSION.
Scegli recommended a meno che tu non abbia bisogno di una funzionalità presente solo in latest. Consulta il riferimento del file di configurazione per i campi RUNTIME e VERSION.

Come funziona un deploy

Dal caricamento a un processo attivo, ogni deploy attraversa la stessa pipeline deterministica:

Rilevamento del linguaggio

Square Cloud ricava il linguaggio dal campo RUNTIME del tuo file di configurazione oppure, se non è impostato, dall’estensione del file MAIN: .js per Node.js, .ts per TypeScript, .py per Python, .go per Go, .jar per Java, e così via. Poi verifica che il file delle dipendenze del linguaggio si trovi nella radice del tuo caricamento: package.json per Node.js e TypeScript, requirements.txt o pyproject.toml per Python, go.mod o go.work per Go, Cargo.toml per Rust, Gemfile per Ruby e mix.exs per Elixir. Se manca o è vuoto, il deploy fallisce con INVALID_DEPENDENCY.

Risoluzione delle dipendenze

Le dipendenze vengono installate lato server, all’interno del container, prima dell’avvio della tua app: npm install quando non c’è una cartella node_modules (una cartella node_modules nella radice del tuo caricamento viene scartata), pip install per Python, bundle install per Ruby e mix deps.get per Elixir, mentre Go, Rust e .NET scaricano i loro pacchetti quando compilano il tuo codice. Non devi includere node_modules o un virtualenv nello .zip. Java è l’eccezione: il comando predefinito esegue un JAR compilato da te (java -jar MAIN), quindi carica il .jar compilato.

Provisioning

Viene creato un container isolato con la CPU e la memoria dichiarate nel tuo file di configurazione. Le risorse sono applicate a livello di kernel, quindi un’applicazione non può mai togliere risorse a un’altra sullo stesso host.

Avvio

Senza START, Square Cloud esegue il comando predefinito del linguaggio, come node MAIN, python MAIN, go run MAIN o java -jar MAIN (Rust ed Elixir compilano ed eseguono l’intero progetto con cargo run --release e mix run --no-halt). Hai bisogno di un passaggio di build o di un comando personalizzato? Imposta START e verrà eseguito così com’è.

All’interno di ogni immagine runtime

Ogni immagine parte dall’immagine ufficiale del suo linguaggio e aggiunge gli strumenti di sistema di cui le applicazioni hanno comunemente bisogno:

Node.js e Python insieme

Le app Node.js e Python girano sulla stessa immagine, che include sia Node.js sia Python 3.14, così un bot può richiamare uno script scritto nell’altro linguaggio. L’immagine PHP include anche Node.js 24 e npm per la build degli asset.

ffmpeg & Chromium

ffmpeg è preinstallato nelle immagini Node.js, Python, Java, Go, Rust, Ruby, Elixir e .NET, e l’immagine Node.js e Python include anche Chromium headless, pronti per bot multimediali, web scraping e generazione di PDF o screenshot senza configurazione aggiuntiva.

Senza privilegi per impostazione predefinita

Le applicazioni vengono eseguite come utente non-root all’interno di un container isolato. Una dipendenza compromessa rimane confinata, senza accesso privilegiato all’host.

Siti statici, nessun runtime

Nessun interprete necessario? Imposta RUNTIME=static per servire direttamente un sito HTML/CSS/JS puro, con la stessa CDN e lo stesso TLS di qualsiasi altra applicazione.

Isolamento e sicurezza

Ogni applicazione è un container completamente isolato con limiti di CPU e memoria applicati a livello di kernel, mai un processo condiviso. L’esecuzione senza privilegi significa che un’applicazione non può raggiungere l’host o i suoi vicini, e i limiti sulle risorse garantiscono che un picco in un progetto non abbia alcun effetto sulle prestazioni di un altro. Questo è lo stesso modello che consente a Square Cloud di ospitare decine di migliaia di carichi di lavoro su cluster condivisi senza che interferiscano tra loro.

Prossimi passi

File di configurazione

Padroneggia MAIN, START, RUNTIME, VERSION e MEMORY: i campi che controllano il tuo runtime.

Guide ai linguaggi

Configurazione passo passo per Node.js, Bun, Deno, Python, Go, Rust, Java, HTML statico e altro.