> ## 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.

# Discord-Bots hosten

> Lerne, wie du Discord-Bots auf Square Cloud erstellst und hostest. Vollständiges Tutorial mit Konfiguration, Deployment und praktischen Beispielen in Node.js und 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"

## Einführung

Um {appType_0} auf Square Cloud zu entwickeln und zu hosten, ist es wichtig, einer strukturierten Abfolge von Konfigurationen und Voraussetzungen zu folgen. Dieser technische Leitfaden deckt den gesamten Prozess ab, von der anfänglichen Einrichtung bis zum Produktions-Deployment.

### Voraussetzungen

* **Square Cloud Konto**: Registriere dich über die [Registrierungsseite](https://squarecloud.app/de/signup) mit deiner E-Mail-Adresse.
* **Aktiver kostenpflichtiger Plan**: Stellt dedizierte Ressourcen und optimierte Leistung für deine Anwendung sicher. Sieh dir unsere [verfügbaren Pläne](https://squarecloud.app/de/pricing) an und wähle den passendsten für deine Bedürfnisse.

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

## Projekt erstellen

Um einen Discord-Bot zu erstellen, ist es grundlegend, ein Konto zu besitzen, um Bots auf der Plattform zu erstellen und zu verwalten. Falls du noch keins hast, besuche die [offizielle Discord-Website](https://discord.com/), um dein Konto zu erstellen.

### Bot-Anwendung auf Discord

<Steps>
  <Step title="Anwendung erstellen" icon="rocket" iconType="solid">
    Rufe das [Developer Portal](https://discord.com/developers/applications) auf und klicke auf "New Application". Lege einen Namen für deinen Bot fest und klicke auf "Create", um die Anwendung zu erstellen.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/discord/create-an-application.webp" alt="Erstellen einer Discord-Anwendung im Developer Portal" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>

  <Step title="Authentifizierungs-Token generieren" icon="key" iconType="solid">
    Navigiere nach dem Erstellen der Anwendung zum Tab "Bot" und klicke auf "Reset Token", um den Authentifizierungs-Token zu generieren. Kopiere den generierten Token zur späteren Verwendung bei der Code-Implementierung.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/discord/generating-token.webp" alt="Generieren des Authentifizierungs-Tokens für den Discord-Bot" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>

  <Step title="Privileged Intents aktivieren" icon="message" iconType="solid">
    Nachdem der Token konfiguriert ist, aktiviere die notwendigen Intents. Bleibe im Tab "Bot", scrolle nach unten und suche "Privileged Gateway Intents". Aktiviere die Intents wie im Bild gezeigt:

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/discord/intent.webp" alt="Aktivieren der Privileged Gateway Intents von Discord" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>
</Steps>

<Warning>
  **Kritische Sicherheit**: Halte deinen Bot-Token absolut geheim. Dieser Token gewährt vollständige Kontrolle über den Bot und sollte als vertrauliche Information behandelt werden.
</Warning>

### Projekt entwickeln

Jetzt, da wir den Bot-Token haben, können wir mit dem Programmieren beginnen. Du kannst dafür deine bevorzugte Sprache verwenden.

<Tabs>
  <Tab title="Discord.js (Node.js)">
    **Node.js-Umgebung einrichten**

    1. Stelle sicher, dass Node.js auf deinem System installiert ist. Falls nicht, lade es von der [offiziellen Node.js-Website](https://nodejs.org/) herunter.

    2. Initialisiere ein neues Node.js-Projekt:

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

    3. Installiere die Discord.js-Bibliothek:

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

    4. Erstelle eine JavaScript-Datei (z. B. `index.js`) und füge den folgenden Code hinzu, um einen grundlegenden Discord-Bot zu erstellen:

    ```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)">
    **Python-Umgebung einrichten**

    1. Stelle sicher, dass Python auf deinem System installiert ist. Falls nicht, lade es von der [offiziellen Python-Website](https://www.python.org/) herunter.

    2. Installiere die discord.py-Bibliothek mit pip:

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

    3. Erstelle eine Python-Datei (z. B. `main.py`) und füge den folgenden Code hinzu, um einen grundlegenden Discord-Bot zu erstellen:

    ```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. Erstelle eine `requirements.txt`-Datei, um alle für dein Projekt benötigten externen Bibliotheken aufzulisten:

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

## Deploying

Nachdem du deine Projektdateien vorbereitet hast, kannst du sie nun zu Square Cloud hochladen und dein Projekt hosten.
Erstelle dazu eine ZIP-Datei, die alle deine Projektdateien enthält.

### Über das Dashboard

<Steps>
  <Step title="Upload-Seite aufrufen">
    Rufe die [Upload-Seite](https://squarecloud.app/de/dashboard/new) auf und lade die ZIP-Datei deines Projekts hoch.
  </Step>

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

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

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/dashboard/uploading.gif" alt="Anwendung wird auf Square Cloud hochgeladen" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>
</Steps>

### Über die CLI

Um diese Methode zu nutzen, musst du eine Konfigurationsdatei mit dem Namen `squarecloud.app` im Stammverzeichnis deines Projekts erstellen. Diese Datei enthält die notwendige Konfiguration für dein Projekt.

<Card title="Mehr erfahren: So erstellst du die Konfigurationsdatei für Square Cloud." icon="link" href="/de/getting-started/config-file">
  Die Datei squarecloud.app ist eine Konfigurationsdatei, mit der deine Anwendung konfiguriert wird; sie dient dazu, deine Umgebung zu definieren.
</Card>

<Steps>
  <Step title="CLI installieren">
    Zuerst musst du die CLI in deiner Umgebung installiert haben. Falls du sie noch nicht hast, führe den folgenden Befehl in deinem Terminal aus:

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

    Falls du sie bereits hast, empfehlen wir, sie zu aktualisieren. Führe dazu den folgenden Befehl in deinem Terminal aus:

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

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

  <Step title="Authentifizieren">
    Um dich zu authentifizieren und weitere CLI-Befehle zu nutzen, findest du deinen Autorisierungsschlüssel [hier](https://squarecloud.app/de/account/security), indem du auf "Request API Key" klickst. Nachdem du deinen Autorisierungsschlüssel erhalten hast, führe den folgenden Befehl aus:

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

  <Step title="Projekt hochladen">
    Um deine Anwendung schließlich über die CLI auf Square Cloud bereitzustellen, musst du den folgenden Befehl ausführen:

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

    Oder falls du die ZIP-Datei manuell erstellt hast, kannst du Folgendes verwenden:

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

## Den Bot testen

Wenn du alle Schritte korrekt befolgt hast, besteht der nächste Schritt darin, deinen Bot zum Testen einzuladen. Gehe dazu wie folgt vor:

1. Rufe das [Developer Portal](https://discord.com/developers/applications) auf.
2. Wähle deinen Bot aus.
3. Navigiere zum Tab "OAuth2".
4. Gehe zu "OAuth2 URL Generator".
5. Aktiviere die Option "bot".
6. Wähle die Berechtigungen aus, die dein Bot beim Einladen über diese Einladung haben soll.
7. Unterhalb der Berechtigungen wird ein Einladungslink für deinen Bot generiert. Er sollte etwa so aussehen:

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

Denke daran, dass die `client_id` in der URL durch die tatsächliche ID deines Bots ersetzt werden sollte. Der Wert von `permissions` muss möglicherweise ebenfalls an die Berechtigungen angepasst werden, die dein Bot haben soll.

Um nun zu testen, ob alles funktioniert, führe den folgenden Befehl auf deinem Server aus: `!hello`.

<Frame>
  <img src="https://cdn.squarecloud.app/docs/articles/discord/testing-bot.gif" alt="Testen des Discord-Bots nach dem Deployment" style={{ borderRadius: "0.2rem" }} />
</Frame>

## Weitere Ressourcen

Weitere Informationen zum Erstellen von Bots mit discord.py und discord.js findest du in der [offiziellen discord.py-Dokumentation](https://discordpy.readthedocs.io/en/latest/) und im [offiziellen discord.js-Guide](https://discordjs.guide/). Dort findest du detaillierte Anleitungen, Tutorials und API-Dokumentation, die dir helfen, das Beste aus diesen Bibliotheken herauszuholen.

## Kontaktiere uns

Falls du weiterhin **technische Schwierigkeiten** hast, steht dir unser **spezialisiertes Support-Team** zur Verfügung. [**Kontaktiere uns**](https://squarecloud.app/de/support) und wir helfen dir gerne, jedes Problem zu lösen.
