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

# Slack-Bots hosten

> Lerne, wie du Slack-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 Slack 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="Slack bots" plan="Hobby" tier="2" cpu="2" lang="en" />

## Projekt erstellen

Um einen Slack-Bot zu erstellen, benötigst du ein Konto und Berechtigungen zum Erstellen von Apps auf Slack. Erstelle ein Konto oder greife auf dein Konto unter [https://slack.com/](https://slack.com/) zu, bevor du den nächsten Schritten folgst.

### Bot-Anwendung auf Slack

1. Gehe zu [Slack API - Your Apps](https://api.slack.com/apps) und klicke auf "Create New App".
2. Wähle "From scratch", gib der App einen Namen und wähle den workspace aus, in dem du sie installieren wirst.
3. Notiere dir das *Signing Secret* (unter "Basic Information") und erstelle ein *Bot Token* im Abschnitt "OAuth & Permissions", wobei du die passenden Scopes für deinen Bot hinzufügst (z. B. `chat:write`, `channels:read`, `commands`, `app_mentions:read`).

<Warning>**Sicherheit:** Gib das Signing Secret oder das Bot Token niemals öffentlich preis. Behandle sie als sensible Anmeldedaten.</Warning>

## Projekt entwickeln

Nutze die folgenden Abschnitte je nach der von dir gewählten Sprache. Beide Beispiele demonstrieren einen Bot, der auf Erwähnungen oder einfache Befehle reagiert.

<Tabs>
  <Tab title="Node.js - @slack/bolt">
    **Node.js-Umgebung einrichten**

    1. Stelle sicher, dass Node.js installiert ist.
    2. Initialisiere ein Projekt und installiere die Abhängigkeiten:

    ```bash Terminal theme={null}
    npm init -y
    npm install @slack/bolt
    ```

    3. Erstelle eine `index.js`-Datei mit folgendem Inhalt:

    ```javascript index.js theme={null}
    const { App } = require('@slack/bolt');

    const app = new App({
      signingSecret: process.env.SLACK_SIGNING_SECRET,
      token: process.env.SLACK_BOT_TOKEN,
    });

    // Responds when mentioned
    app.event('app_mention', async ({ event, say }) => {
      await say(`<@${event.user}> Thanks for mentioning me!`);
    });

    // Example slash command
    app.command('/hello', async ({ ack, respond }) => {
      await ack();
      await respond('Hello from Square Cloud!');
    });

    (async () => {
      await app.start(process.env.PORT || 3000);
      console.log('⚡️ Slack Bolt app is running!');
    })();
    ```

    Hinweis: Setze auf Square Cloud die Umgebungsvariablen `SLACK_SIGNING_SECRET` und `SLACK_BOT_TOKEN` im Anwendungs-Panel.
  </Tab>

  <Tab title="Python - slack_bolt">
    **Python-Umgebung einrichten**

    1. Stelle sicher, dass Python und pip installiert sind.
    2. Installiere die Bibliothek Bolt for Python:

    ```bash Terminal theme={null}
    pip install slack_bolt
    ```

    3. Erstelle eine `app.py`-Datei mit folgendem Inhalt:

    ```python app.py theme={null}
    from slack_bolt import App
    import os

    app = App(
        signing_secret=os.environ.get('SLACK_SIGNING_SECRET'),
        token=os.environ.get('SLACK_BOT_TOKEN')
    )

    @app.event('app_mention')
    def handle_mention(event, say):
        user = event.get('user')
        say(f'<@{user}> Thanks for mention!')

    @app.command('/hello')
    def hello_command(ack, respond):
        ack()
        respond('Hello from Square Cloud!')

    if __name__ == '__main__':
        app.start(port=int(os.environ.get('PORT', 3000)))
    ```

    4. Füge für Python-Projekte eine `requirements.txt` mit folgendem Inhalt hinzu:

    ```txt requirements.txt theme={null}
    slack_bolt
    ```
  </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

1. Installiere die App im Slack-App-Panel unter "OAuth & Permissions" im workspace.
2. Wenn der Bot Endpunkte bereitstellt (für Events oder Befehle), konfiguriere die Request URL unter "Event Subscriptions" und "Slash Commands" so, dass sie auf die öffentliche URL deiner Anwendung verweist (Square Cloud stellt die Domain nach dem Deployment bereit).
3. Teste Erwähnungen in einem Kanal oder den Befehl `/hello`, um die Antworten zu validieren.

Beispiel-Installationslink (ersetze die client\_id):

```txt theme={null}
https://slack.com/oauth/v2/authorize?client_id=000000000000.000000000000&scope=commands,chat:write,app_mentions:read
```

## Weitere Ressourcen

Zur weiteren Lektüre findest du hier die offizielle Slack-Dokumentation:

* Bolt for JavaScript: [https://docs.slack.dev/tools/bolt-js/](https://docs.slack.dev/tools/bolt-js/)
* Bolt for Python: [https://docs.slack.dev/tools/bolt-python/](https://docs.slack.dev/tools/bolt-python/)

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