Cómo alojar un bot de Discord: creación y desarrollo de tu propio bot en un VPS en 2024

Cómo alojar un bot de Discord: creación y desarrollo de tu propio bot en un VPS en 2024

Añadir bots a tu servidor de Discord te permite automatizar tareas y añadir nuevas funciones. Si bien hay muchos bots Discord populares que están listos para usar, es posible que necesites crear uno para tus necesidades específicas.

En este artículo, explicaremos cómo alojar un bot de discord con el plan de alojamiento de servidor privado virtual de Hostinger. En primer lugar, exploraremos los pasos para desarrollar tu propio bot de Discord desde cero.

Luego veremos cómo adquirir un plan de alojamiento VPS de Hostinger y configurar el entorno del servidor para tu bot de Discord. Además, aprenderás sobre la optimización y monitorización del rendimiento del bot de Discord.

Cómo crear un bot de Discord

Para alojar tu propio bot de Discord adaptado a tus preferencias es necesario desarrollarlo manualmente. Los pasos pueden variar en función de la funcionalidad y el lenguaje de programación de tu bot, pero el procedimiento general es similar.

1. Crear una cuenta de bot de Discord

Para empezar a crear un bot de Discord, crea una cuenta en el Portal del desarrollador. En esta plataforma, crearás los bots, gestionarás su configuración y generarás el enlace de autenticación para invitarlos a tu servidor de Discord.

Para crear una cuenta de Discord, ve a la página de registro. Accederás automáticamente a la nueva cuenta de Discord si abres el Portal del desarrollador. A continuación, sigue estos pasos:

  1. En la barra lateral, haz clic en Aplicaciones.
  2. Selecciona Nueva aplicación en la esquina derecha.
  3. Introduce el nombre de tu bot y marca la casilla de política de privacidad. Haz clic en Crear
  4. Cambia el icono de la aplicación. Introduce la Descripción y las Etiquetas. Haz clic en Guardar cambios para confirmar.
  5. Copia el ID de la aplicación y guárdalo en tu ordenador. Lo necesitaremos más tarde para activar el Modo Desarrollador.
Portal del desarrollador en Discord

A continuación, configura tu token de bot: una clave de autenticación que permite a tu aplicación comunicarse con la API de bots de Discord. He aquí cómo hacerlo:

  1. Navega hasta la barra lateral → Bot.
  2. Cambia el nombre de usuario de tu bot.
  3. Haz clic en Restablecer token. Haz clic en ¡Sí, hazlo! para confirmar.
  4. Copia el bot token y guárdalo en tu ordenador.

Insertaremos este token en el código fuente del bot. Además, mantén el código seguro ya que filtrarlo puede exponer a tu bot y al servidor de Discord a riesgos de seguridad.

Ahora, habilita el Modo Desarrollador para evitar el pago relacionado con los SKUs de tu bot de Discord.

  1. Inicia sesión en tu aplicación DiscordConfiguración de usuario → Avanzado. 
  2. Activa el modo de desarrollador.
  3. Activa el interruptor del modo de prueba de la aplicación
  4. Introduce el ID de tu aplicación. Configura el Tipo de origen de URL como Localhost y el Número de puerto como 8080. 
  5. Haz clic en Activar.
Ajustes avanzados en Discord

2. Establecer permisos del bot

Después de configurar la aplicación, configura los permisos de tu cuenta de bot de Discord y el método de autenticación. A continuación te explicamos cómo hacerlo:

  1. En la página Aplicaciones, selecciona OAuth2 → General en la barra lateral. 
  2. En el Enlace de Autorización predeterminada, selecciona Autorización dentro de la aplicación como método. 
  3. Marca la casilla bot.
  4. Selecciona los Permisos de Bot según tus necesidades. 
  5. Haz clic en Guardar cambios.
  6. Ve a la barra lateral → OAuth2 → Generador de URL.
  7. Marca bot en tu aplicación.
  8. Vuelve a marcar las mismas casillas para los Permisos del Bot.
  9. Copia la URL generada y guárdala en tu ordenador. Debe contener el ID de cliente de tu bot.

¡Importante! Evita dar permisos de administrador a un bot, ya que puede modificar la configuración de tu servidor.

Además, ve a la sección Bot de la barra lateral y concede al bot Privileged Gateway Intents. Activa todos los intentos si no estás seguro de cuál utilizará tu bot. Sin embargo, ten en cuenta que concederá al bot acceso a varios datos de Discord.

Ahora, abre el enlace de autenticación utilizando un navegador web para invitar al bot a tu servidor de Discord y concederle los permisos necesarios.

Sitio de invitación de Discord

En el menú desplegable, selecciona el servidor al que deseas añadir el bot y haz clic en Continuar. Revisa los permisos que concederás al bot. Si deseas revocar alguno de ellos, desmarca las casillas. A continuación, haz clic en Autorizar para confirmar.

3. Elegir un lenguaje de programación

JavaScript y Python son lenguajes de programación populares para crear un Bot de Discord. Aunque puedes usar C++, los wrappers disponibles de la API de Discord solo admiten estos lenguajes.

Los wrappers de la API de Discord simplifican la interacción entre el software y tu código, facilitando el desarrollo. Dado que el lenguaje y el wrapper no afectan a la funcionalidad de tu bot, elige uno en función de tu familiaridad y tus preferencias.

Para un principiante, recomendamos utilizar Python, uno de los lenguajes de programación más sencillos y mejores para aprender. Es más fácil de leer y mantener que JavaScript, simplificando el proceso de depuración. También utilizaremos Python para este tutorial.

Antes de continuar, descarga Python y un editor de código. Cuando elijas un editor de código, elige uno con funciones que te ayuden a simplificar el proceso de codificación, como resaltado de sintaxis, autocompletado, detección de errores e integración de módulos.

Recomendamos Microsoft Visual Studio Code, ya que es gratuito y ofrece diversas funciones.

4. Codificar el bot

Una vez que el software y las herramientas estén listos, crea una carpeta para los archivos de tu bot de Discord. A continuación, abre VSCode para acceder a la carpeta y crear archivos de trabajo:

  1. Haz clic en Archivo → Abrir carpeta
  2. Navega hasta el directorio de tu nueva carpeta. Selecciona la carpeta y haz clic en Seleccionar carpeta.
  3. Ve a la barra lateral del Explorador y haz clic en el icono de añadir nuevo archivo.
  4. Crea un archivo main.py para almacenar todos los códigos de tu bot. Para un bot avanzado, puede que necesites múltiples archivos y que estén vinculados a main.py.
  5. Crea un archivo .env para almacenar tu bot token. Tu código Python llamará a este archivo para autenticar la conexión a la API de Discord.

¡Importante! Deja el nombre del archivo .env en blanco. De lo contrario, el código del bot no lo encontrará y leerá la variable de entorno.

Interfaz de VSCode

Dependiendo de la funcionalidad de tu bot de Discord, el código difiere. Para este tutorial, te mostraremos cómo hacer un bot de Discord que responda a un comando simple:

# Import the required modules
import discord
import os
from discord.ext import commands 
from dotenv import load_dotenv

# Create a Discord client instance and set the command prefix
intents = discord.Intents.all()
client = discord.Client(intents=intents)
bot = commands.Bot(command_prefix='!', intents=intents)

# Set the confirmation message when the bot is ready
@bot.event
async def on_ready():
    print(f'Logged in as {bot.user.name}')
# Set the commands for your bot
@bot.command()
async def greet(ctx):
    response = 'Hello, I am your discord bot'
    await ctx.send(response)

@bot.command()
async def list_command(ctx):
    response = 'You can use the following commands: \n !greet \n !list_command \n !functions'
    await ctx.send(response)

@bot.command()
async def functions(ctx):
    response = 'I am a simple Discord chatbot! I will reply to your command!'
    await ctx.send(response)

# Retrieve token from the .env file
load_dotenv()
bot.run(os.getenv('TOKEN'))

A continuación se explica cómo funciona el fragmento de código:

  • Las palabras clave de importación recuperan código de un módulo y lo añaden al archivo de tu bot, permitiéndote usar una función sin escribirla manualmente. Por ejemplo, importamos la biblioteca Discord.py para habilitar el decorador bot.command.
  • Definimos las variables que utilizará el código. En nuestro caso, son los intents del bot Discord, el cliente y el bot.
  • El decorador @bot.event define los eventos que activan la función coroutine. En el fragmento, le indicamos al bot que imprima un mensaje de confirmación una vez que se ejecute correctamente.
  • El decorador @bot.command establece el comando que activa el bot. También determinamos cómo y cuándo responde el bot.
  • La función load_dotenv lee la variable de entorno del archivo .env. En este caso, recupera el token.
  • Usando el método os.getenv, el código extrae el valor del token y lo usa para ejecutar el bot con el decorador bot.run.

Además de responder a comandos, puedes añadir funciones avanzadas como el control por voz o el campo de entrada. Para saber más sobre las funciones, lee la documentación de discord.py.

En el archivo .env, pega el siguiente fragmento. Sustituye yourtoken por la clave de autenticación:

TOKEN=yourtoken

Para comprobar si tu código se ejecuta correctamente, haz clic en el botón Ejecutar archivo Python en la parte superior derecha de VSCode. Sin embargo, debes instalar las dependencias para ejecutar el bot.

Consejo profesional

Si estás en un entorno de equipo y actualizas continuamente el bot de Discord, te recomendamos crear un repositorio Git para simplificar el proceso de desarrollo.

Cómo alojar un bot de Discord

Aloja tu bot de Discord para que sea accesible 24/7. Para este tutorial, utilizaremos un plan de alojamiento VPS de Hostinger con Ubuntu 22.04. Para otros proveedores de servicios de alojamiento y sistemas operativos, los pasos pueden diferir.

1. Obtener un plan de alojamiento VPS

Aunque puedes crear un servidor de alojamiento de bots de Discord en tu ordenador local, el sistema debe funcionar 24 horas al día, 7 días a la semana. Puede causar daños en el hardware a largo plazo y requiere mucho esfuerzo para gestionar.

Un servicio de alojamiento de bots de Discord, como un VPS, es más cómodo y ahorra tiempo. El proveedor gestiona el servidor, lo que te permite centrarte en desarrollar y optimizar tu bot.

Sin embargo, elegir uno puede ser difícil ya que varios proveedores ofrecen servidores de alojamiento para bots de Discord. Para elegir el mejor alojamiento VPS para bots de Discord, considera sus características, seguridad, tiempo de actividad y precio.

Por ejemplo, Hostinger ofrece planes de servidores virtuales a partir de AR$ 8219.00 al mes con varias características:

  • Snapshot: Los usuarios pueden capturar el estado actual de su servidor para restaurarlo fácilmente.
  • Hardware fiable: Hostinger VPS utiliza almacenamiento SSD y una CPU de alto rendimiento para garantizar un rendimiento óptimo y el tiempo de actividad.
  • Múltiples centros de datos: Los usuarios de Hostinger pueden elegir entre varias ubicaciones de centros de datos para minimizar la latencia.
  • Protección DDoS: Nuestro VPS utiliza un firewall y filtrado de tráfico integrado para la protección DDoS.
  • Soporte SSH: Los usuarios pueden conectarse a su VPS utilizando el protocolo de shell seguro (SSH) para gestionar eficazmente su servidor remoto.
  • Acceso FTP: Todos los planes Hostinger VPS soportan FTP, permitiendo a los usuarios transferir fácilmente archivos entre sistemas.
  • IP dedicada: Los usuarios obtienen una dirección IP dedicada para eliminar la limitación de velocidad de los servidores Cloudflare y Discord.

Como diferentes servidores invitan a tu bot, necesitas más recursos para manejar las solicitudes. En Hostinger, nuestros planes de VPS también son fácilmente actualizables para asegurar la escalabilidad de tu Bot de Discord.

Después de comprar un plan de alojamiento en Hostinger, selecciona tu nuevo servidor en el menú VPS de la barra superior. A continuación, completa el proceso de configuración del VPS de Hostinger a través de hPanel, nuestro panel de control intuitivo hecho a medida.

2. Configurar el entorno VPS

El desarrollo de bots de Discord en VPS requiere la configuración del entorno de alojamiento para garantizar que se instala el software necesario. El software varía en función del idioma y la funcionalidad de tu bot.

Para un bot Discord.js, instala Node.js y Node Package Manager. Mientras tanto, esto es lo que necesitas para uno de Python:

  • Intérprete de Python: un entorno que convierte tu código Python en un formato legible por la máquina, permitiendo que tu bot de Discord se ejecute.
  • Gestor de paquetes Pip: un sistema de gestión de paquetes utilizado para instalar módulos y dependencias para tu aplicación Python.
  • Virtualenv: una herramienta para crear un entorno privado virtual aislado para tu aplicación Python. Te permite evitar instalar los paquetes de Python de forma global, lo que puede romper otros proyectos.

Consejo profesional

Antes de continuar, lee nuestro tutorial de Comandos Linux para saber más sobre sus funciones.

Para instalar los componentes, conecta con tu servidor utilizando aplicaciones SHH como PuTTY o Terminal. Los usuarios de Hostinger pueden encontrar las credenciales de inicio de sesión en la pestaña Acceso SSH del menú general de su VPS.

Acceso SSH del menú general de su VPS en hPanel

Una vez conectado, ejecuta los siguientes comandos para actualizar tu gestor de paquetes e instalar el software necesario para alojar tu bot de Discord:

sudo apt update
sudo apt upgrade
sudo apt-get install software-properties-common -y
sudo add-apt-repository ppa:deadsnakes/ppa -y
sudo apt install python3 python3-dev python3-venv python3-pip -y

A continuación, sigue estos pasos para crear un entorno virtual para tu proyecto Python:

  1. Ejecuta este comando para crear un nuevo directorio para almacenar los archivos:
sudo mkdir DiscordBot
  1. Cambia el directorio actual a la nueva carpeta utilizando este comando:
cd DiscordBot
  1. Establece el nuevo entorno virtual con el argumento venv:
sudo python3 -m venv ./venv
  1. Activar el entorno virtual mediante el comando source:
source ./venv/bin/activate

Tu línea de comandos debería empezar ahora con (venv). Si no encuentras el comando source, navega a la ruta del directorio ~/DiscordBot/venv/bin usando el comando cd y ejecuta lo siguiente:

source activate
Putty mostrando la línea de Discord

3. Subir el Bot de Discord

Después de configurar el entorno virtual, mueve los archivos del token y del bot al nuevo directorio. Puedes hacerlo utilizando el comando rsync, el protocolo scp o un cliente SFTP.

Recomendamos utilizar el Protocolo Seguro de Transferencia de Archivos (SFTP), ya que ofrece una interfaz gráfica de usuario y es más seguro que el FTP estándar. La interfaz visual hace que el proceso sea más sencillo y apto para principiantes.

Interfaz de FilleZilla

Para este tutorial, vamos a utilizar FileZilla para transferir los archivos a través de SFTP. Aquí están los pasos:

  1. Descargar e instalar FileZilla.
  2. Abre FileZilla. Introduce la dirección IP de tu servidor, el nombre de usuario, la contraseña y el número de puerto. Por defecto, el número de puerto es 22.
  3. Haz clic en Quickconnect.
  4. Una vez conectado, localiza el nuevo directorio ./venv en la pestaña Sitio remoto.
  5. Arrastra y suelta los archivos bot desde tu ordenador local al directorio remoto.

Espera a que finalice el proceso. El estado de la transferencia de archivos se encuentra en el recuadro situado bajo la pestaña de conexión.

A continuación, vuelve a tu cliente SSH o Terminal. Muévete al directorio bot e instala todas las dependencias. En este tutorial, instalaremos el wrapper discord.py y dotenv usando este comando:

sudo pip install discord.py python-dotenv

Consejo profesional

¿Tienes dificultades para escribir comandos bash o gestionar tu VPS Linux? Introduce instrucciones claras para la gestión de VPS en el asistente VPS con IA de Hostinger para generar fácilmente comandos o código.

4. Ejecutar el Bot

Para ejecutar el bot, establece el directorio actual en la ubicación del archivo main.py y ejecuta el siguiente comando. Si utilizas otro nombre de archivo, cámbialo en consecuencia:

python3 main.py

El terminal debería devolver el mensaje de confirmación escrito en el archivo del bot, similar al siguiente:

Putty mostrando el mensaje de confirmación del bot

Si abres el servidor de Discord donde se encuentra el bot, aparecerá en línea. Para comprobar si el bot funciona correctamente, introduce un comando y debería responder en consecuencia.

Sin embargo, este bot sólo está activo en tu sesión actual. Si cierras el cliente SSH o el Terminal, la sesión terminará y el bot se apagará. Puedes utilizar diferentes herramientas para mantener tu bot en funcionamiento:

  • Linux Screen: Una herramienta que permite a los usuarios crear múltiples Terminales virtuales dentro de una sesión. Los procesos de los Terminales virtuales se ejecutan en segundo plano después de cerrar la sesión y desconectarse del servidor.
  • Tmux: Terminal Multiplexer funciona de forma similar a Screen, permitiendo a los usuarios crear sesiones virtuales y ejecutar procesos en segundo plano. Es más fácil de usar que Screen, pero carece de algunas funciones y es menos estable.
  • PM2: Un gestor de procesos de aplicaciones Node.js que mantiene tu aplicación funcionando constantemente. Es nativo de JavaScript, pero funciona con otros lenguajes de programación, incluido Python.
  • Docker: Una herramienta de contenerización que convierte tu bot de Discord en un daemon. Permite que tu bot se ejecute en segundo plano y se reinicie automáticamente tras un fallo del sistema.

En este tutorial, utilizaremos Linux Screen, que es el más simple y compatible con diferentes entornos. Aquí están los pasos para instalar y utilizar Screen para ejecutar tu bot de Discord en Ubuntu VPS:

  1. En Terminal o aplicación SSH, ejecuta este comando para instalar Screen:
sudo apt-get install screen
  1. Ejecuta este comando para crear una nueva sesión:
screen
  1. Utiliza este comando en el Terminal virtual para cambiar el directorio de trabajo:
cd /DiscordBot/venv
  1. Inicia tu bot de Discord usando lo siguiente:
python3 main.py
  1. Una vez que el bot esté funcionando, pulsa Ctrl + A + D para desconectar la sesión de Screen.

¡Importante! Para los derivados de Red Hat Enterprise Linux (RHEL) como AlmaLinux y CentOS, utiliza yum en lugar de apt para instalar Screen.

Ahora, la sesión permanecerá ejecutándose en segundo plano después de desconectarse del servidor. Para volver a conectarte a Screen, abre tu Terminal o aplicación SSH e introduce:

screen -r

Screen te permite crear múltiples sesiones para ejecutar otros bots de Discord usando este comando:

screen -S session1

Sustituye sesión1 por el nombre de tu sesión. Utiliza un nombre descriptivo que te ayude a identificarlas fácilmente, así como su proceso. Para listar las sesiones del usuario actual, utiliza lo siguiente:

screen -ls

5. Supervisar y mantener el rendimiento del bot

Después de desarrollar el bot de Discord, monitorízalo regularmente para garantizar un rendimiento óptimo. Además, te ayudará a detectar posibles problemas rápidamente antes de que afecten a la usabilidad del bot.

La primera tarea de monitorización es habilitar el módulo Python de registro para rastrear los eventos y errores de tu bot de Discord. Proporciona información sobre la funcionalidad de tu bot para facilitar la depuración y la solución de problemas.

Por ejemplo, añade el siguiente fragmento de código a tu archivo bot para registrar los errores de ejecución de comandos en un archivo bot.log y en el servidor Discord:

# Import the Python logging module
import logging
# Set the logging settings
logging.basicConfig(level=logging.INFO,
   format='[%(asctime)s] [%(levelname)s]: %(message)s',
   handlers=[
      logging.FileHandler('bot.log'),  # Save logs to a file
      logging.StreamHandler()         # Display logs in the console
])

A continuación, añade el siguiente decorador bot.event para imprimir el mensaje de error en tu servidor Discord:

# Set what the bot does when encountering an error
@bot.event
async def on_command_error(ctx, error):
   error_message = f’Error occurred while processing command: {error}’
   logging.error(error_message)
   await ctx.send(error_message)

Además, utiliza herramientas como UptimeRobot para monitorizar el tiempo de actividad del bot de Discord. Para realizar un seguimiento de su uso y actividad, utiliza una herramienta de supervisión del rendimiento de las aplicaciones (APM) como Grafana.

Dado que el proceso de configuración de cada herramienta es diferente, consulta su manual para obtener instrucciones.

Además, monitoriza el uso del hardware de tu VPS para asegurarte de que el bot tiene suficientes recursos para funcionar de forma óptima. Varias métricas importantes a seguir incluyen el uso de la CPU, el consumo de RAM, la carga de almacenamiento y el estado de la red.

Si tu servidor no tiene panel de control, utiliza psutil de Python o comandos de Linux como vmstat. Estos métodos no ofrecen una interfaz gráfica de usuario (GUI), lo que complica el proceso y no es fácil de usar para principiantes.

Uso del servidor en hPanel

Los proveedores de alojamiento web suelen proporcionar un panel de control para el seguimiento del uso de sus servidores. Por ejemplo, Hostinger ofrece una función de monitorización del uso de recursos VPS en hPanel.

Te recomendamos que envíes tu solicitud a un sitio web de listas de bots como top.gg para que otros usuarios de Discord puedan acceder a ella.

Conclusión

Invitar bots a tu servidor de Discord te permite añadir nuevas funciones y simplificar las tareas de moderación. Si bien hay muchos bots de Discord preprogramados disponibles, es posible que necesites crear uno personalizado para tu caso de uso particular.

En este artículo, hemos explicado los pasos para crear y alojar un bot de Discord en Linux VPS. Aquí está la recapitulación:

  1. Crea una cuenta de Discord y una aplicación en el portal para desarrolladores.
  2. Establece los permisos del bot e invítalo a tu servidor de Discord.
  3. Elige un lenguaje de programación y un IDE.
  4. Escribe el código de tu bot de Discord.
  5. Contrata un servicio de alojamiento para el bot de Discord, como el VPS de Hostinger.
  6. Instala las dependencias para configurar el entorno del servidor de alojamiento.
  7. Sube el bot y los archivos token a través de SFTP.
  8. Inicia tu bot de Discord y utiliza Screen para mantenerlo en funcionamiento 24/7.
  9. Monitoriza y mantén el rendimiento del bot.

Esperamos que este artículo te haya ayudado a desarrollar y alojar tu bot de Discord. Si tienes alguna pregunta, deja un comentario a continuación. ¡Mucha suerte!

Cómo alojar un bot de Discord – Preguntas frecuentes

En esta sección, responderemos a varias preguntas comunes sobre el desarrollo y alojamiento de bots de Discord personalizados.

¿Qué es un bot de Discord?

Los bots de Discord son aplicaciones que puedes invitar a tu servidor para que ejecuten tareas específicas. Algunos ejemplos populares son los bots de programación, moderación y música.

Los sitios web de listas de bots como top.gg tienen bots preconstruidos listos para usar. Sin embargo, puede que quieras crear y alojar tu propio bot de Discord desde cero.

¿Cómo elijo el alojamiento VPS adecuado para mi bot de Discord?

Para elegir el servicio de alojamiento de bots de Discord adecuado, ten en cuenta los recursos del servidor, la seguridad, el servicio de atención al cliente y las funciones integradas.

Por ejemplo, Hostinger VPS ofrece funciones como soporte 24/7, soporte SSH y protección DDoS. Tiene una garantía de tiempo de actividad del 99,9% para asegurar que tu bot de Discord funcione constantemente.

¿Qué lenguaje de programación debo usar para crear mi bot de Discord?

Puedes programar un bot de Discord utilizando JavaScript o Python. Dado que el lenguaje no afecta a la funcionalidad del bot, elige uno en función de tus conocimientos y preferencias.

Para los principiantes, recomendamos Python, ya que es más fácil de aprender, leer y mantener que JavaScript, lo que simplifica el proceso de desarrollo del bot.

¿Puedo ejecutar varios bots de Discord en el mismo servidor?

Sí, puedes alojar varios bots en el mismo servidor, siempre que tenga suficiente capacidad de almacenamiento y procesamiento.

De lo contrario, tus bots se ralentizarán o quedarán fuera de línea. Además, puede que necesites utilizar un contenedor o un entorno virtual para evitar problemas de incompatibilidad entre bots.

Author
El autor

Diana Catalina Herrera Infante

Diana es una traductora con amplia experiencia en diferentes tipos de documentos, entre ellos tutoriales y artículos especializados en la creación de sitios web. Además, cuenta con experiencia en el área de marketing digital. En su tiempo libre le gusta hacer ejercicio y ver una buena película.