Langages pris en charge
JavaScript
Bun
Deno
Python
Java
Rust
Elixir
PHP
Go
C#
Ruby
HTML/CSS
Au-delà des langages ci-dessus, la plupart des autres stacks et bibliothèques fonctionnent d’emblée. Les images de runtime sont conçues pour être permissives : si votre langage s’installe sous Linux, il fonctionne très probablement sur Square Cloud.
Versions
Chaque runtime propose deux canaux de mise à jour, sélectionnables via le champVERSION de votre fichier de configuration :
recommended: la version que nous durcissons et exécutons en production pour la majorité des applications. Choisissez-la sauf si vous avez une raison spécifique de ne pas le faire.latest: la version la plus récente, pour les équipes qui ont besoin d’une fonctionnalité du langage tout juste publiée.
VERSION n’accepte que ces deux valeurs : toute autre valeur, y compris un numéro de version exact, fait échouer le déploiement avec INVALID_VERSION.
Comment fonctionne un déploiement
De l’envoi à un processus en cours d’exécution, chaque déploiement suit le même pipeline déterministe :Détection du langage
Square Cloud prend le langage dans le champ
RUNTIME de votre fichier de configuration ou, s’il n’est pas défini, dans l’extension du fichier MAIN : .js pour Node.js, .ts pour TypeScript, .py pour Python, .go pour Go, .jar pour Java, et ainsi de suite. Il vérifie ensuite que le fichier de dépendances du langage se trouve à la racine de votre envoi : package.json pour Node.js et TypeScript, requirements.txt ou pyproject.toml pour Python, go.mod ou go.work pour Go, Cargo.toml pour Rust, Gemfile pour Ruby et mix.exs pour Elixir. S’il est absent ou vide, le déploiement échoue avec INVALID_DEPENDENCY.Résolution des dépendances
Les dépendances sont installées côté serveur, à l’intérieur du conteneur, avant le démarrage de votre application :
npm install lorsqu’il n’y a pas de dossier node_modules (un dossier node_modules à la racine de votre envoi est écarté), pip install pour Python, bundle install pour Ruby et mix deps.get pour Elixir, tandis que Go, Rust et .NET téléchargent leurs paquets lors de la compilation de votre code. Vous n’avez pas besoin d’envoyer node_modules ni un virtualenv dans le .zip. Java fait exception : la commande par défaut exécute un JAR que vous avez compilé (java -jar MAIN), envoyez donc le .jar compilé.Provisionnement
Un conteneur isolé est créé avec le CPU et la mémoire déclarés dans votre fichier de configuration. Les ressources sont appliquées au niveau du noyau, de sorte qu’une application ne peut jamais affamer une autre sur le même hôte.
Démarrage
Sans
START, Square Cloud exécute la commande par défaut du langage, comme node MAIN, python MAIN, go run MAIN ou java -jar MAIN (Rust et Elixir compilent et exécutent tout le projet avec cargo run --release et mix run --no-halt). Besoin d’une étape de build ou d’une commande personnalisée ? Définissez START et elle s’exécute telle quelle.À l’intérieur de chaque image de runtime
Chaque image part de l’image officielle de son langage et ajoute les outils système dont les applications ont couramment besoin :Node.js et Python ensemble
Les applications Node.js et Python tournent sur la même image, qui fournit à la fois Node.js et Python 3.14 : un bot peut donc appeler un script écrit dans l’autre langage. L’image PHP inclut aussi Node.js 24 et npm pour compiler les assets.
ffmpeg & Chromium
ffmpeg est préinstallé dans les images Node.js, Python, Java, Go, Rust, Ruby, Elixir et .NET, et l’image Node.js et Python inclut aussi Chromium headless, prêts pour les bots multimédias, le web scraping et la génération de PDF ou de captures d’écran sans configuration supplémentaire.
Non privilégié par défaut
Les applications s’exécutent en tant qu’utilisateur non-root à l’intérieur d’un conteneur isolé. Une dépendance compromise reste confinée, sans aucun accès privilégié à l’hôte.
Sites statiques, sans runtime
Pas besoin d’interpréteur ? Définissez
RUNTIME=static pour servir directement un site HTML/CSS/JS simple, avec le même CDN et le même TLS que n’importe quelle autre application.Isolation et sécurité
Chaque application est un conteneur entièrement isolé avec des limites de CPU et de mémoire appliquées par le noyau, jamais un processus partagé. S’exécuter en mode non privilégié signifie qu’une application ne peut pas atteindre l’hôte ni ses voisines, et les plafonds de ressources garantissent qu’un pic dans un projet n’a aucun effet sur les performances d’un autre. C’est le même modèle qui permet à Square Cloud d’héberger des dizaines de milliers de charges de travail sur des clusters partagés sans qu’elles interfèrent les unes avec les autres.Étapes suivantes
Fichier de configuration
Maîtrisez
MAIN, START, RUNTIME, VERSION et MEMORY : les champs qui contrôlent votre runtime.Guides par langage
Configuration pas à pas pour Node.js, Bun, Deno, Python, Go, Rust, Java, HTML statique et plus encore.

