Skip to main content

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

  1. 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.
  2. Starte ein neues Node.js-Projekt und aktiviere die import-Syntax mit den folgenden Befehlen:
Terminal
Diese Befehle erstellen eine package.json-Datei im aktuellen Verzeichnis.
  1. 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 SUBDOMAIN deiner Konfigurationsdatei), zum Beispiel mysite. Deine Webhook-URL lautet dann https://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 Umgebungsvariable TOPGG_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.
2. Implementiere den Webhook-Listener: Die folgenden Abschnitte enthalten Codebeispiele für JavaScript und 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 Datei squarecloud.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.
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.
Anwendung wird auf Square Cloud hochgeladen
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 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.
App startet nicht? Im Leitfaden zur Fehlerbehebung findest du die häufigsten Ursachen und Lösungen.

Über die CLI

Um diese Methode zu nutzen, braucht dein Projekt eine Konfigurationsdatei mit dem Namen squarecloud.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 squarecloud.ignore steht, und lädt ihn hoch:
Um eine selbst erstellte ZIP-Datei hochzuladen, übergib sie mit --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.
App startet nicht? Im Leitfaden zur Fehlerbehebung findest du die häufigsten Ursachen und Lösungen.

Das Webhook-Secret festlegen

Füge dein whs_-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 set und starte die Anwendung neu:
Die Anwendung liest ihre Umgebungsvariablen beim Start, starte sie deshalb nach jeder Änderung neu. Solange das Secret nicht gesetzt ist, lehnt der Code jede Anfrage mit 401 Unauthorized ab. Weitere Möglichkeiten, sie zu verwalten, findest du unter Umgebungsvariablen.

Tests starten

Wenn du alles richtig gemacht hast, öffne https://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 also mysite.squareweb.app ist, lautet die Webhook-URL https://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.
Kehre abschließend auf Top.gg zur Seite Webhooks deines Projekts zurück und klicke auf die Schaltfläche “Send Test”. Überprüfe danach die Logs deiner Anwendung. Wenn alles gut gelaufen ist, sollte die Nachricht, die du in console.log oder print definiert hast, in den Logs erscheinen.
Beispiel für den Top.gg-Webhook-Testversand
Und damit ist dein Webhook, sofern alles korrekt konfiguriert wurde, bereit, Benachrichtigungen zu senden, wenn dein Bot einen Vote auf top.gg erhält.

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.

Kontaktiere uns

Falls du weiterhin technische Schwierigkeiten hast, steht dir unser spezialisiertes Support-Team zur Verfügung. Kontaktiere uns und wir helfen dir gerne, jedes Problem zu lösen: die Qualität unseres Supports ist ein wichtiger Grund, warum Entwickler Square Cloud mit 4,9/5 bei 402 Bewertungen auf Google und Trustpilot bewerten.