Skip to main content

Introduction

  • Ce guide suppose que vous avez un bot approuvé sur top.gg et que vous utilisez Node.js ou Python pour votre projet.
  • Ensuite, vous devrez créer un compte sur Square Cloud, ce que vous pouvez faire depuis la page d’inscription. Vous pouvez utiliser votre e-mail pour créer un compte.
  • Enfin, vous devez disposer d’un plan actif sur votre compte. Comparez les plans disponibles et choisissez-en un selon vos besoins.

Configuration de l’environnement

  1. Avant de commencer, assurez-vous d’avoir Node.js et npm installés sur votre système. Si ce n’est pas encore le cas, vous pouvez les télécharger depuis le site officiel de Node.js.
  2. Démarrez un nouveau projet Node.js et activez la syntaxe import avec les commandes suivantes :
Terminal
Ces commandes créent un fichier package.json dans le répertoire courant.
  1. Installez Express :
Terminal

Configuration du projet

1. Récupérez le secret de votre webhook :
  • Choisissez le sous-domaine que votre application utilisera sur Square Cloud (le champ SUBDOMAIN de votre fichier de configuration), par exemple mysite. L’URL de votre webhook sera alors https://mysite.squareweb.app/topgg.
  • Sur Top.gg, ouvrez le tableau de bord de votre projet et allez dans Webhooks.
  • Collez l’URL du webhook et enregistrez. Top.gg génère alors un secret de webhook qui commence par whs_ : copiez-le et gardez-le privé. Votre code le lit depuis la variable d’environnement TOPGG_WEBHOOK_SECRET.
Top.gg signe chaque requête avec l’en-tête x-topgg-signature, au format t=<timestamp>,v1=<signature>, où la signature est un HMAC SHA-256 de <timestamp>.<raw body> calculé avec votre secret. Le code ci-dessous la recalcule et rejette toute requête qui ne correspond pas, afin que personne d’autre ne puisse envoyer de faux votes à votre URL. Consultez la documentation des webhooks Top.gg pour plus de détails.
Ce guide utilise les webhooks v1 de Top.gg. L’ancien webhook v0, qui envoie un mot de passe dans l’en-tête Authorization avec un payload différent, n’est pas couvert ici.
2. Implémentez l’écouteur de webhook : Les sections suivantes fournissent des exemples de code pour JavaScript et Python :
L’exemple vérifie la signature avec le module crypto intégré à Node, aucun paquet Top.gg n’est donc nécessaire. La classe Webhook de @top-gg/sdk 4.0.0 n’est pas utilisée : lors de nos tests, son écouteur répondait aux livraisons valides par une erreur de timeout, ce qui pousse Top.gg à les renvoyer.
index.js

Créer le fichier de configuration squarecloud

Créez un fichier squarecloud.app dans le dossier de votre projet. Définissez SUBDOMAIN sur le sous-domaine choisi à l’étape 1 :
SUBDOMAIN publie l’écouteur sur https://mysite.squareweb.app, et les applications web nécessitent au moins MEMORY=512. Le code écoute sur le port indiqué dans la variable d’environnement PORT, que Square Cloud définit à 80, et sur l’hôte 0.0.0.0.

À découvrir : comment créer le fichier de configuration pour Square Cloud.

Le fichier squarecloud.app est un fichier de configuration qui servira à configurer votre application ; il sera utilisé pour définir le nom, la description, la version, le fichier principal, entre autres choses.

Envoyer votre application sur Square Cloud

Après avoir suivi toutes les étapes, le dossier de votre projet doit contenir votre code, son fichier de dépendances (package.json ou requirements.txt) et le fichier de configuration. Pour téléverser depuis le tableau de bord, placez-les dans un fichier .zip. Si votre application est un projet Node.js, consultez notre article sur Node.js. Si votre application est un projet Python, consultez notre article sur Python.

Via le tableau de bord

1

Accéder à la page d'upload

Accédez à la page d’upload et téléversez le fichier zip de votre projet.
2

Configurer votre environnement

Après avoir téléversé votre zip, vous devrez configurer le nom, le fichier principal ou l’environnement d’exécution ainsi que d’autres paramètres de votre projet.
Si vous téléversez un projet web, veillez à sélectionner « Publication Web » et à définir un sous-domaine pour votre projet.
3

Déployer votre projet

Enfin, cliquez sur le bouton « Deploy » pour héberger votre projet sur Square Cloud.
Une fois le déploiement effectué, vous pouvez suivre l’état et les logs de votre projet depuis le tableau de bord.
Téléversement d'une application vers Square Cloud
4

Confirmez que votre application est en ligne

Votre premier déploiement prend généralement moins d’une minute. Dans le tableau de bord, attendez que le statut de votre application affiche « en cours d’exécution » et vérifiez les logs pour détecter d’éventuelles erreurs de démarrage.
Si vous avez déployé un site web ou une API, ouvrez https://<votre-sous-domaine>.squareweb.app dans votre navigateur, vous devriez voir votre application répondre. Si vous avez déployé un bot, envoyez-lui une commande pour confirmer qu’il est en ligne.
Votre application ne démarre pas ? Consultez le guide de dépannage pour les causes les plus courantes et leurs solutions.

Via la CLI

Pour utiliser cette méthode, votre projet a besoin d’un fichier de configuration nommé squarecloud.app à sa racine. Il indique à Square Cloud comment exécuter votre application.

Guide du fichier de configuration

Apprenez comment créer le fichier de configuration squarecloud.app qui définit l’environnement de votre application.
1

Installer la CLI

Installez la CLI Square Cloud. Si vous l’avez déjà, exécutez la même commande pour la mettre à jour :
2

Se connecter

Exécutez la commande ci-dessous. Elle ouvre votre navigateur : approuvez-y la connexion et la CLI est prête. Il n’y a aucune clé API à copier. Pour les scripts et la CI, consultez Authentification de la CLI.
3

Téléverser votre projet

Depuis le dossier de votre projet, exécutez la commande ci-dessous. La CLI compresse le dossier courant en zip, sans ce que liste squarecloud.ignore, puis l’envoie :
Pour téléverser un zip que vous avez créé vous-même, passez-le avec --file :
4

Confirmez que votre application est en ligne

Votre premier déploiement prend généralement moins d’une minute. Vérifiez le statut et les logs de votre application directement depuis le terminal :
Si vous avez déployé un site web ou une API, ouvrez https://<votre-sous-domaine>.squareweb.app dans votre navigateur, vous devriez voir votre application répondre. Si vous avez déployé un bot, envoyez-lui une commande pour confirmer qu’il est en ligne.
Votre application ne démarre pas ? Consultez le guide de dépannage pour les causes les plus courantes et leurs solutions.

Définir le secret du webhook

Ajoutez votre secret whs_ comme variable d’environnement TOPGG_WEBHOOK_SECRET de votre application, de l’une de ces façons :
  • Tableau de bord : sur la page d’envoi, ouvrez Configuration avancée et ajoutez la variable avant de déployer. Pour une application déjà déployée, ajoutez-la sur sa page Variables d’environnement.
  • CLI : depuis le dossier de votre projet, définissez-la avec squarecloud app env set et redémarrez l’application :
L’application lit les variables d’environnement au démarrage : redémarrez-la donc après chaque modification. Tant que le secret n’est pas défini, le code rejette toutes les requêtes avec 401 Unauthorized. Consultez Variables d’environnement pour les autres façons de les gérer.

Lancer les tests

Si vous avez tout fait correctement, ouvrez https://mysite.squareweb.app/topgg dans votre navigateur (remplacez mysite par votre sous-domaine). Si « Cannot GET /topgg » (Node.js) ou « Method Not Allowed » (Python) s’affiche, tout est correct : la route n’accepte que les requêtes POST envoyées par Top.gg.
  • Pour le code JavaScript que nous avons créé avec app.post("/topgg", ...), la route qui recevra les votes est « /topgg ». Donc, si votre site est mysite.squareweb.app, l’URL du webhook est https://mysite.squareweb.app/topgg.
  • Pour le code Python que nous avons créé avec @app.route("/topgg", methods=["POST"]), la route qui recevra les votes est également « /topgg ». Ainsi, l’URL du webhook est la même : https://mysite.squareweb.app/topgg.
Enfin, revenez à la page Webhooks de votre projet sur Top.gg et cliquez sur le bouton « Send Test ». Ensuite, vérifiez les logs de votre application. Si tout s’est bien passé, le message que vous avez défini dans console.log ou print devrait apparaître dans les logs.
Exemple d'envoi de test du webhook Top.gg
Et avec cela, si tout a été configuré correctement, votre webhook sera prêt à envoyer des notifications lorsque votre bot reçoit un vote sur top.gg.

Dépannage

Domaine personnalisé

Pour utiliser un domaine personnalisé (par exemple mysite.com) au lieu de l’URL par défaut mysite.squareweb.app, vous avez besoin du plan Standard ou supérieur. L’URL par défaut provient du champ SUBDOMAIN du fichier de configuration. Pour connecter votre domaine, suivez comment configurer votre propre domaine.

Prérequis minimum en RAM

Minimum : 512 Mo de RAM pour les sites web et les API, ce qui suffit pour un build statique sur le runtime statique. Pour les applications qui génèrent les pages sur un serveur (Next.js, Nuxt, Angular SSR et similaires), nous recommandons au moins 1 Go de RAM. Pour les applications plus volumineuses, allouez davantage de RAM afin d’éviter que l’application ne manque de mémoire et ne plante.

Impossible de trouver ce site.

Vérifiez que le sous-domaine/domaine correspond à ce qui est configuré dans le champ SUBDOMAIN ou dans les paramètres du domaine personnalisé. Si vous venez tout juste de mettre en ligne le site, patientez jusqu’à 60 secondes pour que Square active le premier accès.

Le site a mis trop de temps à répondre…

Votre serveur doit écouter sur le port 80 et l’hôte 0.0.0.0. Square Cloud définit les variables d’environnement PORT (80) et HOST (0.0.0.0) dans votre application : lisez-les dans votre code au lieu de coder en dur d’autres valeurs. Un serveur qui n’écoute que sur localhost ou 127.0.0.1 ne reçoit jamais de requêtes.

Prochaines étapes

Bot Discord

Hébergez le bot qui reçoit les votes.

Variables d'environnement

Gérez le secret de votre webhook et vos autres secrets.

L'application ne démarre pas

Corrigez les conflits de port, les modules manquants et les autres échecs au démarrage.

Contactez-nous

Si vous rencontrez toujours des difficultés techniques, notre équipe de support spécialisée est disponible pour vous aider. Contactez-nous et nous serons ravis de vous aider à résoudre tout problème. La qualité du support compte pour beaucoup dans la note que les développeurs donnent à Square Cloud, 4,9/5 sur 402 avis sur Google et Trustpilot.