Einführung
- Diese Anleitung setzt voraus, dass du einen genehmigten Bot auf top.gg hast und für dein Projekt entweder Node.js oder Python verwendest.
- Als Nächstes musst du ein Konto bei Square Cloud erstellen, was über die Registrierungsseite möglich ist. Du kannst deine E-Mail-Adresse verwenden, um ein Konto zu erstellen.
- Schließlich musst du einen aktiven Plan in deinem Konto haben. Vergleiche die verfügbaren Pläne und wähle einen passend zu deinen Bedürfnissen.
Einrichtung der Umgebung
- Node.js
- Python
- Bevor du beginnst, stelle sicher, dass Node.js und npm auf deinem System installiert sind. Falls du sie noch nicht hast, kannst du sie von der offiziellen Node.js-Website herunterladen.
- Starte ein neues Node.js-Projekt und aktiviere die
import-Syntax mit den folgenden Befehlen:
Terminal
- Installiere Express:
Terminal
Einrichtung des Projekts
1. Hole dir dein Webhook-Secret:- Wähle die Subdomain, die deine Anwendung auf Square Cloud verwenden wird (das Feld
SUBDOMAINdeiner Konfigurationsdatei), zum Beispielmysite. Deine Webhook-URL lautet dannhttps://mysite.squareweb.app/topgg. - Öffne auf Top.gg das Dashboard deines Projekts und gehe zu Webhooks.
- Füge die Webhook-URL ein und speichere. Top.gg erzeugt daraufhin ein Webhook-Secret, das mit
whs_beginnt: Kopiere es und halte es geheim. Dein Code liest es aus der UmgebungsvariableTOPGG_WEBHOOK_SECRET.
Top.gg signiert jede Anfrage mit dem Header
x-topgg-signature im Format t=<timestamp>,v1=<signature>, wobei die Signatur ein HMAC SHA-256 von <timestamp>.<raw body> mit deinem Secret ist. Der folgende Code berechnet sie neu und lehnt jede Anfrage ab, die nicht übereinstimmt, sodass niemand sonst gefälschte Votes an deine URL senden kann. Details findest du in der Top.gg-Webhook-Dokumentation.Diese Anleitung verwendet Top.gg-Webhooks v1. Der alte v0-Webhook, der ein Passwort im Header
Authorization mit einem anderen Payload sendet, wird hier nicht behandelt.- Node.js
- Python
Das Beispiel prüft die Signatur mit dem integrierten
crypto-Modul von Node, daher wird kein Top.gg-Paket benötigt. Die Klasse Webhook von @top-gg/sdk 4.0.0 wird nicht verwendet: In unseren Tests beantwortete ihr Listener gültige Zustellungen mit einem Timeout-Fehler, wodurch Top.gg sie erneut sendet.index.js
Erstellen der squarecloud-Konfigurationsdatei
Erstelle eine Dateisquarecloud.app in deinem Projektordner. Setze SUBDOMAIN auf die Subdomain, die du in Schritt 1 gewählt hast:
SUBDOMAIN veröffentlicht den Listener unter https://mysite.squareweb.app, und Webanwendungen brauchen mindestens MEMORY=512. Der Code lauscht auf dem Port aus der Umgebungsvariable PORT, die Square Cloud auf 80 setzt, und auf Host 0.0.0.0.
Mehr erfahren: Wie man die Konfigurationsdatei für Square Cloud erstellt.
Die squarecloud.app-Datei ist eine Konfigurationsdatei, die zur Konfiguration deiner Anwendung verwendet wird; sie dient dazu, unter anderem den Namen, die Beschreibung, die Version und die Hauptdatei festzulegen.
Deine Anwendung auf Square Cloud hochladen
Nachdem du alle Schritte befolgt hast, sollte dein Projektordner deinen Code, seine Abhängigkeitsdatei (package.json oder requirements.txt) und die Konfigurationsdatei enthalten. Für den Upload über das Dashboard packst du sie in eine .zip-Datei.
Wenn deine Anwendung ein Node.js-Projekt ist, wirf einen Blick auf unseren Artikel zu Node.js.
Wenn deine Anwendung ein Python-Projekt ist, wirf einen Blick auf unseren Artikel zu Python.
Über das Dashboard
1
Upload-Seite aufrufen
Rufe die Upload-Seite auf und lade die ZIP-Datei deines Projekts hoch.
2
Umgebung konfigurieren
Nachdem du deine ZIP-Datei hochgeladen hast, musst du den Namen, die Hauptdatei oder Runtime-Umgebung und weitere Einstellungen für dein Projekt konfigurieren.
Wenn du ein Web-Projekt hochlädst, achte darauf, “Web Publication” auszuwählen und deinem Projekt eine Subdomain zuzuweisen.
Wenn du ein Web-Projekt hochlädst, achte darauf, “Web Publication” auszuwählen und deinem Projekt eine Subdomain zuzuweisen.
3
Projekt bereitstellen
Klicke abschließend auf die Schaltfläche “Deploy”, um dein Projekt auf Square Cloud zu hosten.
Nach dem Deploy kannst du den Status und die Logs deines Projekts über das Dashboard überwachen.
Nach dem Deploy kannst du den Status und die Logs deines Projekts über das Dashboard überwachen.

4
Bestätige, dass deine App live ist
Dein erstes Deploy dauert in der Regel weniger als eine Minute. Warte im Dashboard, bis der Status deiner Anwendung als “running” angezeigt wird, und prüfe die Logs auf Startfehler.
Wenn du eine Website oder API bereitgestellt hast, öffne
Wenn du eine Website oder API bereitgestellt hast, öffne
https://<deine-subdomain>.squareweb.app in deinem Browser: du solltest sehen, dass deine Anwendung reagiert. Wenn du einen Bot bereitgestellt hast, sende ihm einen Befehl, um zu bestätigen, dass er online ist.
Über die CLI
Um diese Methode zu nutzen, braucht dein Projekt eine Konfigurationsdatei mit dem Namensquarecloud.app im Stammverzeichnis. Sie teilt Square Cloud mit, wie deine Anwendung ausgeführt wird.
Leitfaden zur Konfigurationsdatei
Erfahre, wie du die Konfigurationsdatei
squarecloud.app erstellst, die die Umgebung deiner Anwendung definiert.1
CLI installieren
Installiere die Square Cloud CLI. Falls du sie bereits hast, führe denselben Befehl aus, um sie zu aktualisieren:
2
Anmelden
Führe den folgenden Befehl aus. Er öffnet deinen Browser: Bestätige dort die Anmeldung, und die CLI ist einsatzbereit. Es gibt keinen API-Schlüssel zu kopieren. Für Skripte und CI siehe CLI-Authentifizierung.
3
Projekt hochladen
Führe in deinem Projektordner den folgenden Befehl aus. Die CLI packt den aktuellen Ordner als ZIP, lässt dabei weg, was in der Um eine selbst erstellte ZIP-Datei hochzuladen, übergib sie mit
squarecloud.ignore steht, und lädt ihn hoch:--file:4
Bestätige, dass deine App live ist
Dein erstes Deploy dauert in der Regel weniger als eine Minute. Prüfe den Status und die Logs deiner Anwendung direkt im Terminal:Wenn du eine Website oder API bereitgestellt hast, öffne
https://<deine-subdomain>.squareweb.app in deinem Browser: du solltest sehen, dass deine Anwendung reagiert. Wenn du einen Bot bereitgestellt hast, sende ihm einen Befehl, um zu bestätigen, dass er online ist.
Das Webhook-Secret festlegen
Füge deinwhs_-Secret als Umgebungsvariable TOPGG_WEBHOOK_SECRET deiner Anwendung hinzu, auf einem dieser Wege:
- Dashboard: Öffne auf der Upload-Seite Erweiterte Konfiguration und füge die Variable vor dem Deploy hinzu. Bei einer bereits deployten Anwendung fügst du sie auf ihrer Seite Umgebungsvariablen hinzu.
- CLI: Setze sie in deinem Projektordner mit
squarecloud app env setund starte die Anwendung neu:
401 Unauthorized ab. Weitere Möglichkeiten, sie zu verwalten, findest du unter Umgebungsvariablen.
Tests starten
Wenn du alles richtig gemacht hast, öffnehttps://mysite.squareweb.app/topgg in deinem Browser (ersetze mysite durch deine Subdomain). Wenn “Cannot GET /topgg” (Node.js) oder “Method Not Allowed” (Python) erscheint, ist alles in Ordnung: Die Route akzeptiert nur die POST-Anfragen, die Top.gg sendet.
-
Für den JavaScript-Code, den wir mit
app.post("/topgg", ...)erstellt haben, ist die Route, die die Votes empfängt, “/topgg”. Wenn deine Website alsomysite.squareweb.appist, lautet die Webhook-URLhttps://mysite.squareweb.app/topgg. -
Für den Python-Code, den wir mit
@app.route("/topgg", methods=["POST"])erstellt haben, ist die Route, die die Votes empfängt, ebenfalls “/topgg”. Die Webhook-URL ist also dieselbe:https://mysite.squareweb.app/topgg.
console.log oder print definiert hast, in den Logs erscheinen.

Fehlerbehebung
Eigene Domain
Um eine eigene Domain (z. B.
mysite.com) anstelle der Standard-URL mysite.squareweb.app zu verwenden, benötigst du den Standard-Plan oder höher. Die Standard-URL ergibt sich aus dem Feld SUBDOMAIN in der Konfigurationsdatei. Um deine Domain zu verbinden, folge der Anleitung wie du deine eigene Domain einrichtest.Mindestanforderungen an den Arbeitsspeicher
Minimum: 512MB RAM für Websites und APIs, genug für einen statischen Build auf der statischen Runtime. Für Apps, die Seiten auf einem Server rendern (Next.js, Nuxt, Angular SSR und ähnliche), empfehlen wir mindestens 1GB RAM. Für größere Anwendungen solltest du mehr RAM zuweisen, damit der Anwendung nicht der Speicher ausgeht und sie abstürzt.
Diese Seite konnte nicht gefunden werden.
Prüfe, ob die Subdomain/Domain mit dem übereinstimmt, was im Feld SUBDOMAIN oder in den Einstellungen der eigenen Domain konfiguriert ist. Wenn du die Seite gerade erst hochgeladen hast, warte bis zu 60 Sekunden, bis Square den ersten Zugriff aktiviert.
Die Seite hat zu lange zum Antworten gebraucht…
Dein Server muss auf Port 80 und Host 0.0.0.0 lauschen. Square Cloud setzt in deiner Anwendung die Umgebungsvariablen PORT (
80) und HOST (0.0.0.0): Lies sie in deinem Code aus, statt andere Werte fest einzutragen. Ein Server, der nur auf localhost oder 127.0.0.1 lauscht, erhält nie Anfragen.Nächste Schritte
Discord-Bot
Hoste den Bot, der die Votes empfängt.
Umgebungsvariablen
Verwalte dein Webhook-Secret und andere Secrets.
App startet nicht
Behebe Portkonflikte, fehlende Module und andere Startfehler.

