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

# Come ospitare bot Discord

> Impara a creare e ospitare bot Discord su Square Cloud. Tutorial completo con configurazione, distribuzione ed esempi pratici in Node.js e 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"

## Introduzione

Per sviluppare e ospitare {appType_0} su Square Cloud, è essenziale seguire una sequenza strutturata di configurazioni e prerequisiti. Questa guida tecnica coprirà l'intero processo, dalla configurazione iniziale al deploy in produzione.

### Prerequisiti

* **Account Square Cloud**: Registrati tramite la [pagina di registrazione](https://squarecloud.app/it/signup) usando la tua email.
* **Piano a pagamento attivo**: Garantisce risorse dedicate e prestazioni ottimizzate per la tua applicazione. Consulta i nostri [piani disponibili](https://squarecloud.app/it/pricing) e scegli quello più adatto alle tue esigenze.

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

## Creazione del progetto

Per creare un bot Discord è fondamentale avere un account sulla piattaforma per creare e gestire i bot. Se non ne hai uno, visita il [sito ufficiale di Discord](https://discord.com/) per creare il tuo account.

### Applicazione bot su Discord

<Steps>
  <Step title="Creazione dell'applicazione" icon="rocket" iconType="solid">
    Accedi al [Developer Portal](https://discord.com/developers/applications) e clicca su "New Application". Definisci un nome per il tuo bot e clicca su "Create" per creare l'applicazione.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/discord/create-an-application.webp" alt="Creazione di un'applicazione Discord nel Developer Portal" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>

  <Step title="Generazione del token di autenticazione" icon="key" iconType="solid">
    Dopo aver creato l'applicazione, vai alla scheda "Bot" e clicca su "Reset Token" per generare il token di autenticazione. Copia il token generato per un uso successivo nell'implementazione del codice.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/discord/generating-token.webp" alt="Generazione del token di autenticazione del bot Discord" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>

  <Step title="Attivazione dei Privileged Intents" icon="message" iconType="solid">
    Con il token configurato, attiva gli intent necessari. Rimani nella scheda "Bot", scorri verso il basso e individua "Privileged Gateway Intents". Attiva gli intent come mostrato nell'immagine:

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

<Warning>
  **Sicurezza critica**: mantieni il token del tuo bot in assoluta segretezza. Questo token garantisce il controllo totale sul bot e deve essere trattato come un'informazione confidenziale.
</Warning>

### Sviluppo del progetto

Ora che abbiamo il token del bot, possiamo iniziare a scrivere il codice. Puoi usare il tuo linguaggio preferito per farlo.

<Tabs>
  <Tab title="Discord.js (Node.js)">
    **Configurazione dell'ambiente Node.js**

    1. Verifica che Node.js sia installato sul tuo sistema. In caso contrario, scaricalo dal [sito ufficiale di Node.js](https://nodejs.org/).

    2. Inizializza un nuovo progetto Node.js:

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

    3. Installa la libreria Discord.js:

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

    4. Crea un file JavaScript (ad esempio, `index.js`) e aggiungi il seguente codice per creare un bot Discord di 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)">
    **Configurazione dell'ambiente Python**

    1. Verifica che Python sia installato sul tuo sistema. In caso contrario, scaricalo dal [sito ufficiale di Python](https://www.python.org/).

    2. Installa la libreria discord.py usando pip:

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

    3. Crea un file Python (ad esempio, `main.py`) e aggiungi il seguente codice per creare un bot Discord di 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. Crea un file `requirements.txt` per elencare tutte le librerie esterne necessarie per il tuo progetto:

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

## Distribuzione

Dopo aver preparato i file del tuo progetto, puoi ora caricarli su Square Cloud e ospitare il tuo progetto.
Per farlo, crea un file ZIP contenente tutti i file del tuo progetto.

### Tramite dashboard

<Steps>
  <Step title="Accedi alla pagina di upload">
    Accedi alla [pagina di upload](https://squarecloud.app/it/dashboard/new) e carica il file zip del tuo progetto.
  </Step>

  <Step title="Configura il tuo ambiente">
    Dopo aver caricato il tuo zip, dovrai configurare il nome, il file principale o il runtime environment e altre impostazioni per il tuo progetto.\
    Se stai caricando un progetto web, assicurati di selezionare "Web Publication" e di impostare un sottodominio per il tuo progetto.
  </Step>

  <Step title="Esegui il deploy del tuo progetto">
    Infine, clicca sul pulsante "Deploy" per ospitare il tuo progetto su Square Cloud.\
    Dopo il deploy, puoi monitorare lo stato e i log del tuo progetto dalla dashboard.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/dashboard/uploading.gif" alt="Caricamento dell'applicazione su Square Cloud" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>
</Steps>

### Tramite CLI

Per utilizzare questo metodo, devi creare un file di configurazione chiamato `squarecloud.app` nella directory principale del tuo progetto. Questo file conterrà la configurazione necessaria per il tuo progetto.

<Card title="Scopri di più su: come creare il file di configurazione per Square Cloud." icon="link" href="/it/getting-started/config-file">
  Il file squarecloud.app è un file di configurazione che verrà utilizzato per configurare la tua applicazione; verrà usato per definire il tuo ambiente.
</Card>

<Steps>
  <Step title="Installa la CLI">
    Per prima cosa, devi avere la CLI installata nel tuo ambiente. Se non la hai ancora, esegui il seguente comando nel tuo terminale:

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

    Se la hai già, ti consigliamo di aggiornarla. Per farlo, esegui il seguente comando nel tuo terminale:

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

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

  <Step title="Autenticati">
    Ora, per autenticarti e utilizzare gli altri comandi della CLI, troverai la tua chiave di autorizzazione [qui](https://squarecloud.app/it/account/security) cliccando su "Request API Key". Dopo aver ottenuto la tua chiave di autorizzazione, esegui il seguente comando:

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

  <Step title="Carica il tuo progetto">
    Infine, per eseguire il deploy della tua applicazione su Square Cloud tramite la CLI, devi eseguire il seguente comando:

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

    Oppure, se hai creato lo zip manualmente, puoi usare:

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

## Test del bot

Se hai seguito correttamente tutti i passaggi, il passo successivo è invitare il tuo bot per il test. Per farlo, segui questi passaggi:

1. Accedi al [Developer Portal](https://discord.com/developers/applications).
2. Seleziona il tuo bot.
3. Vai alla scheda "OAuth2".
4. Vai su "OAuth2 URL Generator".
5. Seleziona l'opzione "bot".
6. Scegli i permessi che il tuo bot avrà quando verrà invitato usando questo invito.
7. Sotto i permessi, verrà generato un link d'invito per il tuo bot. Dovrebbe assomigliare a questo:

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

Ricorda che il `client_id` nell'URL deve essere sostituito con l'ID effettivo del tuo bot. Anche il valore `permissions` potrebbe dover essere modificato in base ai permessi che vuoi assegnare al tuo bot.

Ora, per testare se tutto funziona, esegui il seguente comando sul tuo server: `!hello`.

<Frame>
  <img src="https://cdn.squarecloud.app/docs/articles/discord/testing-bot.gif" alt="Test del bot Discord dopo la distribuzione" style={{ borderRadius: "0.2rem" }} />
</Frame>

## Risorse aggiuntive

Per maggiori informazioni sulla creazione di bot con discord.py e discord.js, visita la [documentazione ufficiale di discord.py](https://discordpy.readthedocs.io/en/latest/) e la [guida ufficiale di discord.js](https://discordjs.guide/). Lì troverai guide dettagliate, tutorial e documentazione delle API per aiutarti a sfruttare al meglio queste librerie.

## Contattaci

Se continui a riscontrare **difficoltà tecniche**, il nostro **team di supporto specializzato** è disponibile ad assisterti. [**Contattaci**](https://squarecloud.app/it/support) e saremo felici di aiutarti a risolvere qualsiasi problema.
