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

# Cómo alojar bots de Discord

> Aprende a crear y alojar bots de Discord en Square Cloud. Tutorial completo con configuración, deploy y ejemplos prácticos en Node.js y 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 = "un bot de Discord"

## Introducción

Para desarrollar y alojar {appType_0} en Square Cloud, es esencial seguir una secuencia estructurada de configuraciones y requisitos previos. Esta guía técnica cubrirá todo el proceso, desde la configuración inicial hasta el despliegue en producción.

### Requisitos previos

* **Cuenta de Square Cloud**: Regístrate a través de la [página de registro](https://squarecloud.app/es/signup) usando tu correo electrónico.
* **Plan de pago activo**: Garantiza recursos dedicados y un rendimiento optimizado para tu aplicación. Consulta nuestros [planes disponibles](https://squarecloud.app/es/pricing) y elige el más adecuado para tus necesidades.

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

## Crear el proyecto

Para crear un bot de Discord es fundamental tener una cuenta en la plataforma para crear y gestionar bots. Si no tienes una, visita el [sitio oficial de Discord](https://discord.com/) para crear tu cuenta.

### Aplicación de bot en Discord

<Steps>
  <Step title="Creación de la aplicación" icon="rocket" iconType="solid">
    Accede al [Developer Portal](https://discord.com/developers/applications) y haz clic en "New Application". Define un nombre para tu bot y haz clic en "Create" para crear la aplicación.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/discord/create-an-application.webp" alt="Creando una aplicación de Discord en el Developer Portal" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>

  <Step title="Generación del token de autenticación" icon="key" iconType="solid">
    Después de crear la aplicación, navega a la pestaña "Bot" y haz clic en "Reset Token" para generar el token de autenticación. Copia el token generado para usarlo más adelante en la implementación del código.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/discord/generating-token.webp" alt="Generando el token de autenticación del bot de Discord" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>

  <Step title="Activación de los intents privilegiados" icon="message" iconType="solid">
    Con el token configurado, activa los intents necesarios. Permanece en la pestaña "Bot", desplázate hacia abajo y localiza "Privileged Gateway Intents". Activa los intents como se muestra en la imagen:

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

<Warning>
  **Seguridad crítica**: Mantén el token de tu bot en absoluto secreto. Este token otorga control total sobre el bot y debe tratarse como información confidencial.
</Warning>

### Desarrollar el proyecto

Ahora que tenemos el token del bot, podemos empezar a programar. Puedes usar tu lenguaje favorito para hacerlo.

<Tabs>
  <Tab title="Discord.js (Node.js)">
    **Configuración del entorno Node.js**

    1. Verifica que Node.js esté instalado en tu sistema. Si no lo está, descárgalo desde el [sitio oficial de Node.js](https://nodejs.org/).

    2. Inicializa un nuevo proyecto Node.js:

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

    3. Instala la librería Discord.js:

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

    4. Crea un archivo JavaScript (por ejemplo, `index.js`) y añade el siguiente código para crear un bot de 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}!`);
    });

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

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

  <Tab title="Discord.py (Python)">
    **Configuración del entorno Python**

    1. Verifica que Python esté instalado en tu sistema. Si no lo está, descárgalo desde el [sitio oficial de Python](https://www.python.org/).

    2. Instala la librería discord.py usando pip:

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

    3. Crea un archivo Python (por ejemplo, `main.py`) y añade el siguiente código para crear un bot de 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}')

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

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

    4. Crea un archivo `requirements.txt` para listar todas las librerías externas necesarias para tu proyecto:

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

## Deploy

Después de preparar los archivos de tu proyecto, ya puedes subirlos a Square Cloud y alojar tu proyecto.
Para ello, crea un archivo ZIP que contenga todos los archivos de tu proyecto.

### A través del panel

<Steps>
  <Step title="Accede a la página de subida">
    Accede a la [página de subida](https://squarecloud.app/es/dashboard/new) y sube el archivo zip de tu proyecto.
  </Step>

  <Step title="Configura tu entorno">
    Después de subir tu zip, deberás configurar el nombre, el archivo principal o el entorno de ejecución y otros ajustes de tu proyecto.\
    Si estás subiendo un proyecto web, asegúrate de seleccionar "Publicación Web" y de definir un subdominio para tu proyecto.
  </Step>

  <Step title="Despliega tu proyecto">
    Por último, haz clic en el botón "Deploy" para alojar tu proyecto en Square Cloud.\
    Tras el despliegue, puedes monitorear el estado y los logs de tu proyecto desde el panel.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/dashboard/uploading.gif" alt="Subiendo aplicación a Square Cloud" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>
</Steps>

### A través de la CLI

Para usar este método, necesitas crear un archivo de configuración llamado `squarecloud.app` en el directorio raíz de tu proyecto. Este archivo contendrá la configuración necesaria para tu proyecto.

<Card title="Aprende más sobre: cómo crear el archivo de configuración para Square Cloud." icon="link" href="/es/getting-started/config-file">
  El archivo squarecloud.app es un archivo de configuración que se usará para configurar tu aplicación; se utilizará para definir tu entorno.
</Card>

<Steps>
  <Step title="Instala la CLI">
    Primero, necesitas tener la CLI instalada en tu entorno. Si aún no la tienes, ejecuta el siguiente comando en tu terminal:

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

    Si ya la tienes, te recomendamos actualizarla. Para ello, ejecuta el siguiente comando en tu terminal:

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

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

  <Step title="Autentícate">
    Ahora, para autenticarte y usar otros comandos de la CLI, encontrarás tu clave de autorización [aquí](https://squarecloud.app/es/account/security) haciendo clic en "Request API Key". Después de obtener tu clave de autorización, ejecuta el siguiente comando:

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

  <Step title="Sube tu proyecto">
    Por último, para desplegar tu aplicación en Square Cloud usando la CLI, necesitas ejecutar el siguiente comando:

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

    O si creaste el zip manualmente, puedes usar:

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

## Probar el bot

Si seguiste todos los pasos correctamente, el siguiente paso es invitar a tu bot para probarlo. Para ello, sigue estos pasos:

1. Accede al [Developer Portal](https://discord.com/developers/applications).
2. Selecciona tu bot.
3. Navega a la pestaña "OAuth2".
4. Ve a "OAuth2 URL Generator".
5. Marca la opción "bot".
6. Elige los permisos que tendrá tu bot cuando se invite usando esta invitación.
7. Debajo de los permisos, se generará un enlace de invitación para tu bot. Debería verse así:

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

Recuerda que el `client_id` en la URL debe reemplazarse con el ID real de tu bot. El valor de `permissions` también puede necesitar ajustes según los permisos que quieras que tenga tu bot.

Ahora, para probar si todo funciona, ejecuta el siguiente comando en tu servidor: `!hello`.

<Frame>
  <img src="https://cdn.squarecloud.app/docs/articles/discord/testing-bot.gif" alt="Probando el bot de Discord después del deploy" style={{ borderRadius: "0.2rem" }} />
</Frame>

## Recursos adicionales

Para más información sobre la creación de bots con discord.py y discord.js, visita la [documentación oficial de discord.py](https://discordpy.readthedocs.io/en/latest/) y la [guía oficial de discord.js](https://discordjs.guide/). Allí encontrarás guías detalladas, tutoriales y documentación de API para ayudarte a aprovechar al máximo estas librerías.

## Contáctanos

Si continúas enfrentando **dificultades técnicas**, nuestro **equipo de soporte especializado** está disponible para ayudarte. [**Contáctanos**](https://squarecloud.app/es/support) y estaremos encantados de ayudarte a resolver cualquier problema.
