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

# Como Hospedar Bots do Discord

> Aprenda a criar e hospedar bots do Discord na Square Cloud. Tutorial completo com configuração, deploy e exemplos práticos em 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 = "um bot de Discord"

## Introdução

Para desenvolver e hospedar um aplicativo {appType_0} no Square Cloud, é essencial seguir uma sequência estruturada de configurações e pré-requisitos.
Este guia técnico abordará todo o processo, desde a configuração inicial até a implantação em produção.

### Pré-requisitos

* **Conta Square Cloud**: Cadastre-se através da [página de cadastro](https://squarecloud.app/pt-br/signup) usando seu e-mail.
* **Plano Pago Ativo**: Garante recursos dedicados e desempenho otimizado para seu aplicativo. Confira nossos [planos disponíveis](https://squarecloud.app/pt-br/pricing) e escolha o mais adequado às suas necessidades.

<RecommendedPlan appType="Bots de Discord" plan="Hobby" tier="2" cpu="2" lang="pt-br" />

## Criando o projeto

Para criar um bot do Discord, é fundamental ter uma conta para criar e gerenciar bots na plataforma. Se você não tem uma, visite o [site oficial do Discord](https://discord.com/) para criar sua conta.

### Aplicação de Bot no Discord

<Steps>
  <Step title="Criação da Aplicação" icon="rocket" iconType="solid">
    Acesse o [Developer Portal](https://discord.com/developers/applications) e clique em "New Application". Defina um nome para o seu bot e clique em "Create" para criar a aplicação.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/discord/create-an-application.webp" alt="Criando uma aplicação no Discord Developer Portal" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>

  <Step title="Geração do Token de Autenticação" icon="key" iconType="solid">
    Após criar a aplicação, navegue até a aba "Bot" e clique em "Reset Token" para gerar o token de autenticação. Copie o token gerado para uso posterior na implementação do código.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/discord/generating-token.webp" alt="Gerando o token de autenticação do bot Discord" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>

  <Step title="Ativação de Intents Privilegiadas" icon="message" iconType="solid">
    Com o token configurado, ative as *intents* necessárias. Permanecendo na aba "Bot", role para baixo e localize "Privileged Gateway Intents". Ative as intents conforme mostrado na imagem:

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

<Warning>
  **Segurança Crítica**: Mantenha o token do seu bot em sigilo absoluto. Este token concede controle total sobre o bot e deve ser tratado como informação confidencial.
</Warning>

### Desenvolvendo o projeto

Agora que temos o token do bot, podemos começar a codificar. Você pode usar sua linguagem favorita para isso.

<Tabs>
  <Tab title="Discord.js (Node.js)">
    **Configuração do Ambiente Node.js**

    1. Verifique se o Node.js está instalado em seu sistema. Caso contrário, baixe-o no [site oficial do Node.js](https://nodejs.org/).

    2. Inicialize um novo projeto Node.js:

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

    3. Instale a biblioteca Discord.js:

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

    4. Crie um arquivo JavaScript (ex: `index.js`) e adicione o seguinte código para criar um bot Discord básico:

    ```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} está online!`);
    });

    client.on("messageCreate", (message) => {
      if (message.content === "!olá") {
        message.reply("Olá!");
      }
    });

    client.login("seu token aqui");
    ```
  </Tab>

  <Tab title="Discord.py (Python)">
    **Configuração do Ambiente Python**

    1. Verifique se o Python está instalado em seu sistema. Caso contrário, baixe-o no [site oficial do Python](https://www.python.org/).

    2. Instale a biblioteca discord.py usando pip:

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

    3. Crie um arquivo Python (ex: `main.py`) e adicione o seguinte código para criar um bot Discord básico:

    ```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} está online!')

    @client.command()
    async def olá(ctx):
        await ctx.reply('Olá!')

    client.run('seu token aqui')
    ```

    4. Crie um arquivo `requirements.txt` para listar todas as bibliotecas externas necessárias para o seu projeto:

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

## Realizando o Deploy

Após preparar os arquivos do seu projeto, você pode enviá-los para a Square Cloud e hospedar seu projeto.
Para fazer isso, crie um arquivo ZIP contendo todos os arquivos do seu projeto.

### Via dashboard

<Steps>
  <Step title="Acesse a página de upload">
    Acesse a [página de upload](https://squarecloud.app/pt-br/dashboard/new) e envie seu arquivo zip.
  </Step>

  <Step title="Configure seu ambiente">
    Após fazer o upload do seu arquivo zip, você precisará configurar o nome, o arquivo principal ou o ambiente de execução e outras configurações do seu projeto.\
    Se você estiver enviando um projeto web, certifique-se de selecionar "Publicação na Web" e definir um subdomínio para o seu projeto.
  </Step>

  <Step title="Faça o deploy do projeto">
    Por fim, clique no botão "Deploy" para hospedar seu projeto no Square Cloud.
    Após o deploy, você poderá monitorar o status e os registros do seu projeto no painel.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/dashboard/uploading-pt-br.gif" alt="Enviando aplicação para a Square Cloud" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>
</Steps>

### Via CLI

Para usar esse método, você precisa criar um arquivo de configuração chamado `squarecloud.app` no diretório raiz do seu projeto. Esse arquivo conterá a configuração necessária para o seu projeto.

<Card title="Saiba mais sobre: Como criar arquivo de configuração da Square Cloud." icon="link" href="/pt-br/getting-started/config-file">
  O arquivo squarecloud.app é um arquivo de configuração que será usado para configurar seu aplicativo; ele será usado para definir seu ambiente.
</Card>

<Steps>
  <Step title="Primeiro Passo">
    Primeiro, você precisa ter a CLI instalada em seu ambiente. Se você ainda não a possui, execute o seguinte comando em seu terminal:

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

    Se você já a possui, recomendamos atualizá-la. Para fazer isso, execute o seguinte comando em seu terminal:

    <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="Segundo Passo">
    Agora, para autenticar e usar outros comandos da CLI, você encontrará sua chave de autorização [aqui](https://squarecloud.app/pt-br/account/security) clicando em "Solicitar Chave da API". Após obter sua chave de autorização, execute o seguinte comando:

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

  <Step title="Terceiro Passo">
    Finalmente, para fazer o deploy da sua aplicação para a Square Cloud usando a CLI, você precisa executar o seguinte comando:

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

    Ou se já possui o zip criado:

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

## Testando o Bot

Se você seguiu todas as etapas corretamente, o próximo passo é convidar seu bot para teste. Para fazer isso, siga estas etapas:

1. Acesse o [Developer Portal](https://discord.com/developers/applications).
2. Selecione seu bot.
3. Navegue até a aba "OAuth2".
4. Vá para "OAuth2 URL Generator".
5. Marque a opção "bot".
6. Escolha as permissões que seu bot terá ao ser convidado usando este convite.
7. Abaixo das permissões, um link de convite para o seu bot será gerado. Ele deve se parecer com este:

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

Lembre-se de que o `client_id` na URL deve ser substituído pelo ID real do seu bot. O valor de `permissions` também pode precisar ser ajustado com base nas permissões que você deseja que seu bot tenha.

Agora, para testar se está tudo funcionando, execute o seguinte comando no seu servidor: `!olá`.

<Frame>
  <img src="https://cdn.squarecloud.app/docs/articles/discord/testing-bot.gif" alt="Testando o bot Discord após o deploy" style={{ borderRadius: "0.2rem" }} />
</Frame>

## Recursos Adicionais

Para mais informações sobre a criação de bots com discord.py e discord.js, visite a [documentação oficial do discord.py](https://discordpy.readthedocs.io/en/latest/) e o [guia oficial do discord.js](https://discordjs.guide/). Lá, você encontrará guias detalhados, tutoriais e documentação da API para ajudá-lo a tirar o máximo proveito dessas bibliotecas.

## Contate-nos

Se você continuar enfrentando **dificuldades técnicas**, nossa **equipe de suporte especializada** está disponível para auxiliá-lo. [**Entre em contato conosco**](https://squarecloud.app/pt-br/support) e teremos prazer em ajudá-lo a resolver qualquer questão.
