Logo de King's Domain

King'sDomain

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.

Política de Uso Aceptable y Límites de Recursos

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

  1. Encuentra a BotFather: Abre tu aplicación de Telegram y busca al usuario verificado @BotFather.
  2. Crea un Nuevo Bot: Inicia un chat con BotFather y envía el comando /newbot. Sigue las instrucciones en pantalla.
  3. 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.js o bot.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

  1. Sube tus archivos index.js y package.json al Gestor de Archivos.
  2. Ve a la pestaña de "Inicio". Pega tu token en la variable BOT_TOKEN. Asegúrate de que la variable BOT_JS_FILE esté establecida en index.js.
  3. 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

  1. Sube tu `bot.py`, `requirements.txt` y tu carpeta `cogs` al Gestor de Archivos.
  2. Ve a la pestaña de "Inicio". Pega tu token en la variable BOT_TOKEN. Asegúrate de que la variable BOT_PY_FILE esté establecida en bot.py.
  3. 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`.