Introducción al Alojamiento de Bots
¡Bienvenido al Alojamiento de Bots! Este servicio está diseñado para ejecutar tus bots programados a medida 24/7, incluso cuando tu ordenador está apagado. Un bot es simplemente un programa que automatiza tareas en plataformas como Discord o Telegram. Al alojar tu bot con nosotros, permanecerá en línea y disponible para los usuarios en todo momento.
Nuestro servicio de alojamiento de bots está destinado estrictamente a ejecutar bots en sus plataformas designadas (p. ej., un bot de Discord conectándose a la API de Discord). Cualquier intento de utilizar este servicio para otros fines (como alojar sitios web, servidores de juegos o aplicaciones maliciosas) resultará en una suspensión inmediata.
Los planes gratuitos vienen con límites de recursos específicos (p. ej., 256MB de RAM, 25% de CPU). Si tu bot crece mucho o se une a miles de servidores, puede que necesites actualizar a un plan de pago para obtener más potencia.
Obteniendo Tu Token de Bot
Un "token" es una contraseña única y secreta que tu código utiliza para iniciar sesión en la cuenta de tu bot. Esta es la pieza de información más crítica que necesitas. Nunca debes compartir tu token con nadie.
Token de Bot de Discord
Crea una Aplicación
Ve al Portal de Desarrolladores de Discord y haz clic en "New Application". Dale un nombre y haz clic en "Create".
Crea un Usuario de Bot y Obtén el Token
En la configuración de tu aplicación, ve a la pestaña "Bot". Haz clic en "Add Bot". Debajo del nombre de usuario de tu bot, haz clic en "Reset Token" para revelar y copiar tu token.
Habilita los Intents de Gateway
Los "Intents" son permisos que tu bot necesita para recibir ciertos tipos de información. En la misma página de "Bot", desplázate hacia abajo y habilita las tres "Privileged Gateway Intents". Sin ellas, tu bot no podrá ver quién está en un servidor, cuándo se unen nuevos miembros o leer el contenido de los mensajes.
Token de Bot de Telegram
- Encuentra a BotFather: Abre tu aplicación de Telegram y busca al usuario verificado
@BotFather. - Crea un Nuevo Bot: Inicia un chat con BotFather y envía el comando
/newbot. Sigue las instrucciones en pantalla. - Copia Tu Token: Una vez completado, BotFather te proporcionará tu token de API. Cópialo y guárdalo en un lugar seguro.
El Entorno Pterodactyl para Bots
Nuestro panel proporciona un entorno potente y aislado para gestionar tu bot. Aquí te explicamos los conceptos clave de forma sencilla.
Variables Clave de Inicio
La pestaña de "Inicio" es donde configuras tu servidor. Para los bots, estas son las variables más importantes:
BOT_TOKEN: El lugar seguro donde pegarás tu token secreto de bot.BOT_JS_FILE/BOT_PY_FILE: El nombre de tu archivo de script principal (p. ej.,index.jsobot.py).NODE_VERSION(para bots en JavaScript): Te permite especificar la versión de Node.js a utilizar (p. ej.,16,18,20). Esto es crucial para asegurar la compatibilidad con tu código y librerías.
Variables de Entorno: La Forma Segura
Pegar tu token directamente en tu código es como escribir tu contraseña en una nota adhesiva. Una **variable de entorno** es como una caja fuerte. Colocas tu token en la variable BOT_TOKEN en la pestaña de Inicio, y tu código puede entonces solicitar el valor desde dentro de la caja fuerte sin que nadie más lo vea. Esta es la forma profesional y segura de manejar secretos.
Guía de Discord.js (JavaScript)
Esta guía te mostrará cómo desplegar un bot de Discord escrito en JavaScript usando la popular librería discord.js.
1. El Archivo `package.json`: La Lista de Compras de Tu Bot
Este archivo es esencial. Le dice a nuestro servidor qué librerías de Node.js (dependencias) debe instalar. Piénsalo como una lista de compras para `npm` (Node Package Manager). Puedes crearlo en tu PC ejecutando npm init -y en la carpeta de tu proyecto. Debe contener un script "start" y listar discord.js en sus dependencias.
2. Ejemplo de Código: Un Bot de Ping Sencillo
Tu código debe leer el token del entorno y solicitar los "Intents" correctos de Discord para funcionar.
// index.js
const { Client, GatewayIntentBits } = require('discord.js');
const client = new Client({
intents: [
GatewayIntentBits.Guilds,
GatewayIntentBits.GuildMessages,
GatewayIntentBits.MessageContent
]
});
client.on('messageCreate', message => {
if (message.author.bot) return;
if (message.content === '!ping') {
message.reply('Pong!');
}
});
const token = process.env.BOT_TOKEN;
client.login(token);
3. Pasos para el Despliegue
- Sube tus archivos
index.jsypackage.jsonal Gestor de Archivos. - Ve a la pestaña de "Inicio". Pega tu token en la variable
BOT_TOKEN. Asegúrate de que la variableBOT_JS_FILEesté establecida enindex.js. - Inicia el servidor. La consola primero mostrará la ejecución de
npm install, y luego tu bot se conectará.
4. Solución de Problemas
"Error: Cannot find module 'discord.js'": Esto significa que tu archivo package.json falta, es incorrecto o no se subió. Asegúrate de que exista y liste correctamente `discord.js` bajo `dependencies`.
"TypeError: Cannot read properties of null (reading 'channels')": Este es un problema clásico de "Intents". Asegúrate de haber habilitado todas las Privileged Gateway Intents en el Portal de Desarrolladores de Discord.
Guía de Discord.py (Python)
Esta guía cubre el despliegue de un bot de Discord escrito en Python usando librerías como discord.py o sus forks (py-cord, nextcord).
1. El Archivo `requirements.txt`: La Lista de Compras de Python
Nuestro servidor utiliza este archivo para instalar los paquetes de Python necesarios usando `pip`. En tu PC, genera este archivo ejecutando este comando en la terminal de tu proyecto:
pip freeze > requirements.txt
2. Ejemplo de Código: Un Bot de Ping Mejorado con Comandos
Aunque un simple evento `on_message` funciona, la forma correcta de construir un bot escalable es con la extensión de `commands`.
# bot.py
import os
import discord
from discord.ext import commands
# Los Intents son permisos. message_content es necesario para leer comandos.
intents = discord.Intents.default()
intents.message_content = True
bot = commands.Bot(command_prefix='!', intents=intents)
@bot.command()
async def ping(ctx):
"""¡Responde con Pong!"""
await ctx.send('Pong!')
# Esta es la forma segura de obtener tu token
token = os.getenv("BOT_TOKEN")
bot.run(token)
3. Avanzado: Organización con Cogs
Para bots más grandes, deberías organizar tus comandos en archivos separados llamados "Cogs". Crea una carpeta llamada `cogs`, y dentro, crea un archivo como `fun.py`:
# cogs/fun.py
from discord.ext import commands
class Fun(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.command()
async def hello(self, ctx):
await ctx.send(f'¡Hola {ctx.author.name}!')
async def setup(bot):
await bot.add_cog(Fun(bot))
Luego, en tu archivo principal `bot.py`, cargas este cog:
# bot.py (modificado para cargar cogs)
# ... (importaciones y configuración del bot como antes) ...
@bot.event
async def on_ready():
print(f'Conectado como {bot.user}')
await bot.load_extension('cogs.fun')
token = os.getenv("BOT_TOKEN")
bot.run(token)
4. Pasos para el Despliegue
- Sube tu `bot.py`, `requirements.txt` y tu carpeta `cogs` al Gestor de Archivos.
- Ve a la pestaña de "Inicio". Pega tu token en la variable
BOT_TOKEN. Asegúrate de que la variableBOT_PY_FILEesté establecida enbot.py. - Inicia el servidor. La consola mostrará la ejecución de
pip install -r requirements.txt, y luego tu bot se iniciará.
Guía de Bots de Telegram
Alojar un bot de Telegram sigue exactamente los mismos principios. Preparas tu código para que lea el token de una variable de entorno y proporcionas un archivo de dependencias.
Ejemplo de Bot de Telegram en Python
Este ejemplo utiliza la popular librería python-telegram-bot.
# requirements.txt
python-telegram-bot==20.3
# main.py
import os
from telegram import Update
from telegram.ext import Application, CommandHandler, ContextTypes
async def start(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
await update.message.reply_text('¡Hola desde tu bot alojado!')
def main() -> None:
token = os.getenv("BOT_TOKEN") # Lee el token de forma segura
application = Application.builder().token(token).build()
application.add_handler(CommandHandler("start", start))
# Esto pregunta constantemente a Telegram por nuevos mensajes
application.run_polling()
if __name__ == "__main__":
main()
Para desplegar esto, subirías `main.py` y `requirements.txt`, establecerías tu `BOT_TOKEN` en la pestaña de Inicio y te asegurarías de que el nombre del script de Python esté establecido en `main.py`.