Unterstützte Sprachen
JavaScript
Bun
Deno
Python
Java
Rust
Elixir
PHP
Go
C#
Ruby
HTML/CSS
Über die oben genannten Sprachen hinaus laufen die meisten anderen Stacks und Bibliotheken sofort einsatzbereit. Die Runtime-Images sind bewusst permissiv gestaltet: Wenn sich deine Sprache unter Linux installieren lässt, läuft sie höchstwahrscheinlich auch auf Square Cloud.
Versionen
Jede Runtime liefert zwei Update-Kanäle, die über das FeldVERSION in deiner Konfigurationsdatei auswählbar sind:
recommended: die Version, die wir härten und für die Mehrheit der Anwendungen in Produktion betreiben. Wähle sie, sofern du keinen bestimmten Grund dagegen hast.latest: die neueste Version, für Teams, die ein gerade erst veröffentlichtes Sprachfeature benötigen.
VERSION akzeptiert nur diese beiden Werte: Jeder andere Wert, auch eine exakte Versionsnummer, lässt den Deploy mit INVALID_VERSION fehlschlagen.
Wie ein Deploy abläuft
Vom Upload bis zum laufenden Prozess durchläuft jeder Deploy dieselbe deterministische Pipeline:Spracherkennung
Square Cloud entnimmt die Sprache dem Feld
RUNTIME deiner Konfigurationsdatei oder, wenn es nicht gesetzt ist, der Erweiterung der MAIN-Datei: .js für Node.js, .ts für TypeScript, .py für Python, .go für Go, .jar für Java und so weiter. Danach prüft es, ob die Abhängigkeitsdatei der Sprache im Stammverzeichnis deines Uploads liegt: package.json für Node.js und TypeScript, requirements.txt oder pyproject.toml für Python, go.mod oder go.work für Go, Cargo.toml für Rust, Gemfile für Ruby und mix.exs für Elixir. Fehlt sie oder ist sie leer, schlägt der Deploy mit INVALID_DEPENDENCY fehl.Abhängigkeitsauflösung
Abhängigkeiten werden serverseitig im Container installiert, bevor deine App startet:
npm install, wenn es keinen node_modules-Ordner gibt (ein node_modules-Ordner im Stammverzeichnis deines Uploads wird verworfen), pip install für Python, bundle install für Ruby und mix deps.get für Elixir, während Go, Rust und .NET ihre Pakete herunterladen, wenn sie deinen Code bauen. Du musst weder node_modules noch eine virtualenv in der .zip mitliefern. Java ist die Ausnahme: Der Standardbefehl führt eine von dir gebaute JAR aus (java -jar MAIN), lade also die kompilierte .jar hoch.Bereitstellung
Ein isolierter Container wird mit der in deiner Konfigurationsdatei deklarierten CPU und dem deklarierten Arbeitsspeicher erstellt. Ressourcen werden auf Kernel-Ebene erzwungen, sodass eine Anwendung eine andere auf demselben Host niemals aushungern kann.
Start
Ohne
START führt Square Cloud den Standardbefehl der Sprache aus, etwa node MAIN, python MAIN, go run MAIN oder java -jar MAIN (Rust und Elixir bauen und starten das ganze Projekt mit cargo run --release und mix run --no-halt). Brauchst du einen Build-Schritt oder einen eigenen Befehl? Setze START, und er wird wortgetreu ausgeführt.Im Inneren jedes Runtime-Images
Jedes Image baut auf dem offiziellen Image seiner Sprache auf und ergänzt die Systemtools, die Anwendungen häufig brauchen:Node.js und Python zusammen
Node.js- und Python-Apps laufen auf demselben Image, das sowohl Node.js als auch Python 3.14 enthält, sodass ein Bot ein Skript in der jeweils anderen Sprache aufrufen kann. Das PHP-Image enthält außerdem Node.js 24 und npm für Asset-Builds.
ffmpeg & Chromium
ffmpeg ist in den Images für Node.js, Python, Java, Go, Rust, Ruby, Elixir und .NET vorinstalliert, und das Image für Node.js und Python enthält zusätzlich Headless-Chromium, bereit für Medien-Bots, Web-Scraping und PDF- oder Screenshot-Generierung ohne zusätzliche Einrichtung.
Standardmäßig ohne Privilegien
Anwendungen laufen als Non-Root-Benutzer innerhalb eines isolierten Containers. Eine kompromittierte Abhängigkeit bleibt eingedämmt, ohne privilegierten Zugriff auf den Host.
Statische Websites, keine Runtime
Kein Interpreter nötig? Setze
RUNTIME=static, um eine einfache HTML/CSS/JS-Website direkt auszuliefern, mit demselben CDN und TLS wie jede andere Anwendung.Isolation und Sicherheit
Jede Anwendung ist ein vollständig isolierter Container mit kernel-erzwungenen CPU- und Speicherlimits, niemals ein gemeinsam genutzter Prozess. Der Betrieb ohne Privilegien bedeutet, dass eine Anwendung weder den Host noch ihre Nachbarn erreichen kann, und Ressourcenobergrenzen garantieren, dass eine Lastspitze in einem Projekt keinerlei Auswirkung auf die Leistung eines anderen hat. Dies ist dasselbe Modell, das es Square Cloud erlaubt, Zehntausende von Arbeitslasten auf gemeinsam genutzten Clustern zu hosten, ohne dass sie sich gegenseitig stören.Nächste Schritte
Konfigurationsdatei
Beherrsche
MAIN, START, RUNTIME, VERSION und MEMORY: die Felder, die deine Runtime steuern.Sprach-Guides
Schritt-für-Schritt-Einrichtung für Node.js, Bun, Deno, Python, Go, Rust, Java, statisches HTML und mehr.

