> ## Documentation Index
> Fetch the complete documentation index at: https://docs.squarecloud.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Comment héberger des bots Discord

> Apprenez à créer et héberger des bots Discord sur Square Cloud. Tutoriel complet avec configuration, déploiement et exemples pratiques en Node.js et Python.

export const RecommendedPlan = ({lang, plan, tier, cpu, appType}) => {
  const url = `https://squarecloud.app/${lang}/pay?plan=${plan.toLowerCase()}&tier=${tier}`;
  if (lang == 'en') {
    return <Note>
        <b>Wondering how much RAM and CPU your plan needs to host {appType}?</b><br />
        Don't worry, we're here to help.
        Our <a href={url}>{plan}</a> plan offers <b>{tier}GB</b> of RAM and <b>{cpu}vCPU</b>, which should be sufficient for most {appType}. 
        However, if you are working on a larger project and seeking extra stability, we recommend considering our <b>Pro</b> plan. With additional resources, you can maintain stability even during demand spikes. 
        To purchase, simply click <a href="https://squarecloud.app/en/pay?plan=pro">here</a>.
      </Note>;
  } else {
    return <Note>
          <b>Está se perguntando quanta RAM e CPU seu plano precisa para hospedar {appType}?</b><br />
          Não se preocupe, estamos aqui para ajudar.
          Nosso plano <a href={url}>{plan}</a> oferece <b>{tier}GB</b> de RAM e <b>{cpu}vCPU</b>, o que deve ser suficiente para a maioria dos {appType}.
          No entanto, se você estiver trabalhando em um projeto maior e precisar de mais estabilidade, recomendamos considerar nosso plano <b>Pro</b>.
          Com recursos adicionais, você pode manter a estabilidade mesmo durante picos de demanda.
          Para comprar, basta clicar <a href={`https://squarecloud.app/${lang}/pay?plan=pro`}>aqui</a>.
        </Note>;
  }
};

export const appType_0 = "a Discord bot"

## Introduction

Pour développer et héberger {appType_0} sur Square Cloud, il est essentiel de suivre une séquence structurée de configurations et de prérequis. Ce guide technique couvrira l'ensemble du processus, de la configuration initiale au déploiement en production.

### Prérequis

* **Compte Square Cloud** : Inscrivez-vous via la [page d'inscription](https://squarecloud.app/fr/signup) en utilisant votre adresse e-mail.
* **Plan payant actif** : Garantit des ressources dédiées et des performances optimisées pour votre application. Consultez nos [plans disponibles](https://squarecloud.app/fr/pricing) et choisissez celui qui convient le mieux à vos besoins.

<RecommendedPlan appType="Discord bots" plan="Hobby" tier="2" cpu="2" lang="en" />

## Création du projet

Pour créer un bot Discord, il est essentiel d'avoir un compte sur la plateforme afin de créer et gérer des bots. Si vous n'en avez pas, visitez le [site officiel de Discord](https://discord.com/) pour créer votre compte.

### Application bot sur Discord

<Steps>
  <Step title="Création de l'application" icon="rocket" iconType="solid">
    Accédez au [Developer Portal](https://discord.com/developers/applications) et cliquez sur « New Application ». Définissez un nom pour votre bot et cliquez sur « Create » pour créer l'application.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/discord/create-an-application.webp" alt="Création d'une application Discord dans le Developer Portal" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>

  <Step title="Génération du token d'authentification" icon="key" iconType="solid">
    Après avoir créé l'application, accédez à l'onglet « Bot » et cliquez sur « Reset Token » pour générer le token d'authentification. Copiez le token généré pour l'utiliser ultérieurement dans l'implémentation du code.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/discord/generating-token.webp" alt="Génération du token d'authentification du bot Discord" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>

  <Step title="Activation des intents privilégiés" icon="message" iconType="solid">
    Une fois le token configuré, activez les intents nécessaires. Restez dans l'onglet « Bot », faites défiler vers le bas et localisez « Privileged Gateway Intents ». Activez les intents comme indiqué sur l'image :

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/discord/intent.webp" alt="Activation des privileged gateway intents Discord" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>
</Steps>

<Warning>
  **Sécurité critique** : Gardez le token de votre bot dans le plus grand secret. Ce token accorde un contrôle total sur le bot et doit être traité comme une information confidentielle.
</Warning>

### Développement du projet

Maintenant que nous avons le token du bot, nous pouvons commencer à coder. Vous pouvez utiliser votre langage préféré pour le faire.

<Tabs>
  <Tab title="Discord.js (Node.js)">
    **Configuration de l'environnement Node.js**

    1. Vérifiez que Node.js est installé sur votre système. Sinon, téléchargez-le depuis le [site officiel de Node.js](https://nodejs.org/).

    2. Initialisez un nouveau projet Node.js :

    ```bash Terminal theme={null}
    npm init -y
    ```

    3. Installez la bibliothèque Discord.js :

    ```bash Terminal theme={null}
    npm install discord.js
    ```

    4. Créez un fichier JavaScript (par exemple, `index.js`) et ajoutez le code suivant pour créer un bot Discord de base :

    ```javascript index.js theme={null}
    const { Client, GatewayIntentBits } = require("discord.js");

    const client = new Client({
      intents: [
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMessages,
        GatewayIntentBits.MessageContent,
      ],
    });

    client.on("ready", () => {
      console.log(`${client.user.tag}!`);
    });

    client.on("messageCreate", (message) => {
      if (message.content === "!hello") {
        message.reply("Hello!");
      }
    });

    client.login("your token here");
    ```
  </Tab>

  <Tab title="Discord.py (Python)">
    **Configuration de l'environnement Python**

    1. Vérifiez que Python est installé sur votre système. Sinon, téléchargez-le depuis le [site officiel de Python](https://www.python.org/).

    2. Installez la bibliothèque discord.py à l'aide de pip :

    ```bash Terminal theme={null}
    pip install discord.py
    ```

    3. Créez un fichier Python (par exemple, `main.py`) et ajoutez le code suivant pour créer un bot Discord de base :

    ```python main.py theme={null}
    import discord
    from discord.ext import commands

    intents = discord.Intents.default()
    intents.message_content = True

    client = commands.Bot(command_prefix='!', intents=intents)

    @client.event
    async def on_ready():
        print(f'{client.user}')

    @client.command()
    async def hello(ctx):
        await ctx.reply('Hello!')

    client.run('your token here')
    ```

    4. Créez un fichier `requirements.txt` pour lister toutes les bibliothèques externes nécessaires à votre projet :

    ```txt requirements.txt theme={null}
    discord.py
    ```
  </Tab>
</Tabs>

## Déploiement

Après avoir préparé les fichiers de votre projet, vous pouvez maintenant les téléverser sur Square Cloud et héberger votre projet.
Pour ce faire, créez un fichier ZIP contenant tous les fichiers de votre projet.

### Via le tableau de bord

<Steps>
  <Step title="Accéder à la page d'upload">
    Accédez à la [page d'upload](https://squarecloud.app/fr/dashboard/new) et téléversez le fichier zip de votre projet.
  </Step>

  <Step title="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.
  </Step>

  <Step title="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.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/dashboard/uploading.gif" alt="Téléversement d'une application vers Square Cloud" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>
</Steps>

### Via la CLI

Pour utiliser cette méthode, vous devez créer un fichier de configuration nommé `squarecloud.app` à la racine de votre projet. Ce fichier contiendra la configuration nécessaire à votre projet.

<Card title="En savoir plus : comment créer le fichier de configuration pour Square Cloud." icon="link" href="/fr/getting-started/config-file">
  Le fichier squarecloud.app est un fichier de configuration qui servira à configurer votre application ; il sera utilisé pour définir votre environnement.
</Card>

<Steps>
  <Step title="Installer la CLI">
    Tout d'abord, vous devez avoir la CLI installée dans votre environnement. Si ce n'est pas encore le cas, exécutez la commande suivante dans votre terminal :

    ```
    npm install -g @squarecloud/cli
    ```

    Si vous l'avez déjà, nous vous recommandons de la mettre à jour. Pour cela, exécutez la commande suivante dans votre terminal :

    <Tabs>
      <Tab title="Windows">
        ```bash theme={null}
        squarecloud update
        ```
      </Tab>

      <Tab title="Linux, macOS et WSL">
        ```bash theme={null}
        curl -fsSL https://cli.squarecloud.app/install | bash
        ```
      </Tab>
    </Tabs>
  </Step>

  <Step title="S'authentifier">
    Maintenant, pour vous authentifier et utiliser les autres commandes de la CLI, vous trouverez votre clé d'autorisation [ici](https://squarecloud.app/fr/account/security) en cliquant sur « Request API Key ». Après avoir obtenu votre clé d'autorisation, exécutez la commande suivante :

    ```bash theme={null}
    squarecloud auth login
    ```
  </Step>

  <Step title="Téléverser votre projet">
    Enfin, pour déployer votre application sur Square Cloud à l'aide de la CLI, vous devez exécuter la commande suivante :

    ```bash theme={null}
    squarecloud upload 
    ```

    Ou si vous avez créé le zip manuellement, vous pouvez utiliser :

    ```bash theme={null}
    squarecloud upload --file <path/to/zip> 
    ```
  </Step>
</Steps>

## Tester le bot

Si vous avez suivi toutes les étapes correctement, l'étape suivante consiste à inviter votre bot pour le tester. Pour ce faire, suivez ces étapes :

1. Accédez au [Developer Portal](https://discord.com/developers/applications).
2. Sélectionnez votre bot.
3. Accédez à l'onglet « OAuth2 ».
4. Allez dans « OAuth2 URL Generator ».
5. Cochez l'option « bot ».
6. Choisissez les permissions que votre bot aura lorsqu'il sera invité avec cette invitation.
7. Sous les permissions, un lien d'invitation pour votre bot sera généré. Il devrait ressembler à ceci :

```txt theme={null}
https://discord.com/oauth2/authorize?client_id=00000000000000&permissions=8&scope=bot
```

N'oubliez pas que le `client_id` dans l'URL doit être remplacé par l'ID réel de votre bot. La valeur `permissions` peut également devoir être ajustée en fonction des permissions que vous souhaitez accorder à votre bot.

Maintenant, pour tester si tout fonctionne, exécutez la commande suivante sur votre serveur : `!hello`.

<Frame>
  <img src="https://cdn.squarecloud.app/docs/articles/discord/testing-bot.gif" alt="Test du bot Discord après le déploiement" style={{ borderRadius: "0.2rem" }} />
</Frame>

## Ressources supplémentaires

Pour plus d'informations sur la création de bots avec discord.py et discord.js, visitez la [documentation officielle de discord.py](https://discordpy.readthedocs.io/en/latest/) et le [guide officiel de discord.js](https://discordjs.guide/). Vous y trouverez des guides détaillés, des tutoriels et une documentation d'API pour vous aider à tirer le meilleur parti de ces bibliothèques.

## Contactez-nous

Si vous rencontrez toujours des **difficultés techniques**, notre **équipe de support spécialisée** est disponible pour vous aider. [**Contactez-nous**](https://squarecloud.app/fr/support) et nous serons ravis de vous aider à résoudre tout problème.
