Skip to main content
Eine Runtime auf Square Cloud ist die vollständige, isolierte Umgebung, in der deine Anwendung läuft: der Sprachinterpreter oder die virtuelle Maschine, die Systembibliotheken, gegen die sie linkt, das Tooling, das sie aufrufen kann, und die Sicherheitsgrenze, die sie von jeder anderen Anwendung auf dem Host trennt. Du baust oder pflegst diese Umgebung nie selbst. Du lieferst deinen Quellcode und eine kleine Konfigurationsdatei; Square Cloud erkennt die Sprache, löst deine Abhängigkeiten auf, stellt einen isolierten Container bereit und führt ihn aus. Dieselbe Pipeline betreibt Discord-/WhatsApp-/Telegram-Bots, Websites und APIs, Hintergrund-Worker und langlaufende Dienste, auf derselben schnellen, gehärteten Infrastruktur.

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 Feld VERSION 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.
Wähle recommended, es sei denn, du brauchst ein Feature, das nur latest bietet. Siehe die Referenz zur Konfigurationsdatei für die Felder RUNTIME und VERSION.

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.