Saltar al contenido principal

Introducción

Para desarrollar y alojar un bot de Discord 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 usando tu correo electrónico.
  • Plan activo: Garantiza recursos dedicados y un rendimiento optimizado para tu aplicación. Consulta nuestros planes disponibles y elige el más adecuado para tus necesidades.
Esta guía usa el runtime de Node.js o el runtime de Python.

Crear el proyecto

Necesitas una cuenta de Discord para crear y gestionar bots. Si no tienes una, créala en el sitio oficial de Discord.

Aplicación de bot en Discord

Crear la aplicación

Accede al Developer Portal y haz clic en “New Application”. Define un nombre para tu bot y haz clic en “Create” para crear la aplicación.
Creando una aplicación de Discord en el Developer Portal

Generar el token

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. Cópialo: lo definirás como variable de entorno en Square Cloud, nunca en tu código.
Generando el token de autenticación del bot de Discord

Activar los intents privilegiados

El bot de ejemplo lee el texto de los mensajes, así que necesita el Message Content Intent. Permanece en la pestaña “Bot”, desplázate hasta “Privileged Gateway Intents” y activa Message Content Intent. Este ejemplo no necesita los otros dos intents privilegiados (Presence y Server Members).
Habilitando los privileged gateway intents de Discord
Mantén tu token en secreto: este token otorga control total sobre el bot. Nunca lo escribas en tu código ni lo pongas en tu ZIP: los ejemplos de abajo lo leen de la variable de entorno DISCORD_TOKEN.

Desarrollar el bot

Escribe el bot con discord.js (Node.js) o discord.py (Python):
  1. Verifica que Node.js esté instalado en tu sistema. Si no lo está, descárgalo desde el sitio oficial de Node.js.
  2. Inicializa un nuevo proyecto Node.js:
Terminal
  1. Instala la librería discord.js:
Terminal
  1. Crea un archivo JavaScript (por ejemplo, index.js) y añade el siguiente código para crear un bot de Discord básico:
index.js
El código usa discord.js v14, donde el evento ready es Events.ClientReady ("clientReady"). El antiguo nombre "ready" está obsoleto.

Configurar Square Cloud

Crea un archivo squarecloud.app en la raíz de tu proyecto, junto a tu archivo principal. Le indica a Square Cloud cómo ejecutar tu bot:
  • MAIN es el archivo que ejecuta Square Cloud, y MEMORY es la RAM del bot en MB. Los bots necesitan al menos 256 MB; 512 MB deja margen para crecer.
  • AUTORESTART=true vuelve a iniciar el bot si falla. Consulta cómo funciona el auto restart.
  • No hay SUBDOMAIN: un bot no sirve páginas web.
Cuando subes desde el dashboard, el formulario de subida puede rellenar estos ajustes por ti. Consulta la referencia del archivo de configuración para cada campo.

Definir el token del bot

Tu código lee el token de la variable de entorno DISCORD_TOKEN, así que el token nunca va en tus archivos. Defínelo de una de estas formas:
  • Dashboard: en la página de subida, abre Configuración avanzada y añade una variable llamada DISCORD_TOKEN con tu token como valor. Para un bot que ya está en línea, añádela en la página Variables de entorno de la aplicación y reinicia el bot.
  • CLI: justo después de subir el bot (consulta Hacer deploy y verificar), defínela con squarecloud app env set y reinicia el bot:
El bot lee sus variables de entorno al iniciar, así que reinícialo después de cada cambio. Consulta Variables de entorno para ver las demás formas de gestionarlas.
Para ejecutar primero el bot en tu computadora, define la variable en tu terminal: export DISCORD_TOKEN=your_token_here en macOS y Linux, o $env:DISCORD_TOKEN="your_token_here" en PowerShell.

Qué va en el ZIP

  • Tu archivo principal (index.js o main.py) y tus demás archivos de código.
  • package.json o requirements.txt.
  • squarecloud.app.
Deja fuera node_modules, .venv y __pycache__: Square Cloud instala tus dependencias cuando el bot inicia.

Hacer deploy y verificar

Crea el ZIP descrito arriba y luego súbelo:

A través del panel

1

Accede a la página de subida

Accede a la página de subida y sube el archivo zip de tu proyecto.
2

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

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.
Subiendo aplicación a Square Cloud
4

Confirma que tu aplicación esté en vivo

Tu primer despliegue suele tardar menos de un minuto. En el dashboard, espera a que el estado de tu aplicación muestre “running” y revisa los logs por si hay errores de inicio.
Si desplegaste un sitio web o una API, abre https://<tu-subdominio>.squareweb.app en tu navegador: deberías ver tu aplicación respondiendo. Si desplegaste un bot, envíale un comando para confirmar que esté online.
¿La aplicación no inicia? Consulta la guía de solución de problemas para ver las causas y soluciones más comunes.

A través de la CLI

Para usar este método, tu proyecto necesita un archivo de configuración llamado squarecloud.app en su raíz. Le indica a Square Cloud cómo ejecutar tu aplicación.

Guía del archivo de configuración

Aprende a crear el archivo de configuración squarecloud.app que define el entorno de tu aplicación.
1

Instala la CLI

Instala la CLI de Square Cloud. Si ya la tienes, ejecuta el mismo comando para actualizarla:
2

Inicia sesión

Ejecuta el comando de abajo. Abre tu navegador: aprueba el inicio de sesión allí y la CLI queda lista. No hay ninguna clave de API que copiar. Para scripts y CI, consulta autenticación de la CLI.
3

Sube tu proyecto

Desde la carpeta de tu proyecto, ejecuta el comando de abajo. La CLI comprime la carpeta actual en un zip, dejando fuera lo que lista squarecloud.ignore, y lo sube:
Para subir un zip que creaste tú mismo, pásalo con --file:
4

Confirma que tu aplicación esté en vivo

Tu primer despliegue suele tardar menos de un minuto. Revisa el estado y los logs de tu aplicación directamente desde la terminal:
Si desplegaste un sitio web o una API, abre https://<tu-subdominio>.squareweb.app en tu navegador: deberías ver tu aplicación respondiendo. Si desplegaste un bot, envíale un comando para confirmar que esté online.
¿La aplicación no inicia? Consulta la guía de solución de problemas para ver las causas y soluciones más comunes.

Invitar al bot a tu servidor

Para enviarle un comando al bot, añádelo a un servidor de Discord:
  1. Accede al Developer Portal y selecciona tu bot.
  2. Navega a la pestaña “OAuth2” y ve a “OAuth2 URL Generator”.
  3. En “Scopes”, marca la opción “bot”.
  4. En “Bot Permissions”, marca solo lo que necesita el ejemplo: View Channels, Send Messages y Read Message History. Evita Administrator: los bots rara vez lo necesitan, y un token filtrado controlaría entonces todo tu servidor.
  5. Copia la URL generada, ábrela en tu navegador y añade el bot a tu servidor. La URL se ve así:
68608 es la suma de esos tres permisos. Reemplaza YOUR_CLIENT_ID por el ID de tu aplicación, que aparece en la pestaña “General Information”. Si añades comandos que necesitan más permisos, genera una nueva URL con ellos marcados. Luego envía !hello en un canal que el bot pueda ver. Responde con Hello!.
Probando el bot de Discord después del deploy

Errores comunes

An invalid token was provided

Los logs muestran Error [TokenInvalid]: An invalid token was provided. (discord.js) o discord.errors.LoginFailure: Improper token has been passed. (discord.py). La variable DISCORD_TOKEN falta o tiene un token antiguo. Copia el token actual de la pestaña “Bot”, defínelo de nuevo y reinicia el bot. Con discord.py, un KeyError: 'DISCORD_TOKEN' significa que la variable no está definida.

Used disallowed intents

Los logs muestran Error [DisallowedIntents]: Privileged intent provided is not enabled or whitelisted. (discord.js) o discord.errors.PrivilegedIntentsRequired (discord.py). El código pide el Message Content Intent, pero está desactivado en el Developer Portal. Actívalo en la pestaña “Bot”, como en Aplicación de bot en Discord, y reinicia el bot.

El bot está en línea pero no responde a !hello

Comprueba que el bot pueda ver y enviar mensajes en ese canal, y que el Message Content Intent esté activado: sin él, el bot recibe los mensajes con el texto vacío. Para más mensajes y soluciones, consulta Errores de bots de Discord.

Próximos pasos

Errores de bots de Discord

Soluciona un token inválido, intents que faltan y otros errores comunes.

Variables de entorno

Gestiona el token de tu bot y otros secretos.

Servidor Lavalink

Aloja un servidor Lavalink para reproducir música en tu bot.
Para más información sobre estas librerías, consulta la documentación oficial de discord.py y la guía oficial de discord.js.

Contáctanos

Si continúas enfrentando dificultades técnicas, nuestro equipo de soporte especializado está disponible para ayudarte. Contáctanos y estaremos encantados de ayudarte a resolver cualquier problema: la calidad del soporte es una gran parte de por qué los desarrolladores califican a Square Cloud con 4.9/5 en 402 reseñas en Google y Trustpilot.