NodeJS15 de diciembre de 2025 23 vistas

Cómo alojar un bot de Discord (discord.js) en OuiPanel

Cómo alojar un bot de Discord (discord.js) en OuiPanel

Cómo alojar un bot Discord (discord.js) en OuiPanel

Tiempo estimado: 15 minutos
Dificultad: Intermedio ⭐⭐
Tipo de servidor: Node.js


📋 Introducción

Esta guía explica cómo alojar un bot Discord desarrollado con discord.js (JavaScript/Node.js) en OuiPanel. Su bot estará en línea 24/7.

Lo que necesitarás

Requisito Descripción
🤖 Un bot Discord Creado en el Portal de Desarrolladores de Discord
🔑 El token del bot Clave secreta para conectar su bot
📁 Los archivos del bot Su código fuente (index.js, package.json, etc.)
💻 Un servidor Node.js Ordenado en OuiHeberg

🤖 Paso 1: Crear el Bot en Discord (si aún no lo has hecho)

Si ya tienes tu bot y su token, pasa al paso 2.

Crear la aplicación

  1. Ve al Portal de Desarrolladores de Discord
  2. Inicia sesión con tu cuenta de Discord
  3. Haz clic en Nueva Aplicación
  4. Da un nombre a tu aplicación (ej: "Mi Bot")
  5. Haz clic en Crear

Imagen


Crear el bot

  1. En el menú de la izquierda, haz clic en Bot
  2. Haz clic en Añadir Bot luego en Sí, hazlo
  3. ¡Tu bot ha sido creado!

[Captura de pantalla: Sección Bot con el botón Añadir Bot]


Obtener el Token

  1. En la sección Bot, haz clic en Restablecer Token
  2. Confirma y copia el token mostrado
  3. ¡Guarda este token en secreto! Nunca lo compartas.

Imagen

⚠️ Importante: El token es como una contraseña. Si alguien lo obtiene, puede controlar tu bot. Nunca lo incluyas en un código público (GitHub, etc.).


Activar los Intents

  1. Todavía en la sección Bot, desplázate hasta Privileged Gateway Intents
  2. Activa los intents necesarios:
    • PRESENCE INTENT (opcional)
    • SERVER MEMBERS INTENT (opcional)
    • MESSAGE CONTENT INTENT (necesario para leer los mensajes)

Imagen

⚠️ Importante: Sin MESSAGE CONTENT INTENT, tu bot no podrá leer el contenido de los mensajes.


Invitar al bot a tu servidor

  1. En el menú de la izquierda, haz clic en OAuth2Generador de URL
  2. En Alcances, marca bot y applications.commands
  3. En Permisos del Bot, marca los permisos necesarios (o Administrador para todo)
  4. Copia la URL generada abajo
  5. Abre esta URL e invita al bot a tu servidor de Discord

Imagen


📁 Paso 2: Preparar los Archivos del Bot

Structura de los archivos

Tu bot debe tener esta estructura:

📁 MiBot/
├── 📄 index.js         ← Archivo principal (o bot.js, main.js...)
├── 📄 package.json     ← Dependencias npm
├── 📄 .env             ← Token del bot (creado en el servidor)
├── 📁 commands/        ← (Opcional) Carpeta de comandos
└── 📁 events/          ← (Opcional) Carpeta de eventos

Archivo package.json

Crea un archivo package.json con las dependencias discord.js y dotenv:

{
  "name": "mi-bot-discord",
  "version": "1.0.0",
  "description": "Mi bot Discord",
  "main": "index.js",
  "scripts": {
    "start": "node index.js"
  },
  "dependencies": {
    "discord.js": "^14.14.1",
    "dotenv": "^16.3.1"
  }
}

💡 Adapta "main": "index.js" según el nombre de tu archivo principal (bot.js, main.js, etc.).


Archivo principal (index.js)

Crea tu archivo principal con dotenv para cargar el token:

// Cargar las variables de entorno desde .env
require('dotenv').config();

const { Client, GatewayIntentBits } = require('discord.js');

// Creación del cliente Discord
const client = new Client({
    intents: [
        GatewayIntentBits.Guilds,
        GatewayIntentBits.GuildMessages,
        GatewayIntentBits.MessageContent
    ]
});

// Evento: Bot listo
client.once('ready', () => {
    console.log(`✅ Bot conectado como ${client.user.tag}`);
});

// Evento: Mensaje recibido
client.on('messageCreate', message => {
    if (message.author.bot) return;
    
    // Usar el prefijo desde .env (opcional)
    const prefix = process.env.PREFIX || '!';
    
    if (message.content === `${prefix}ping`) {
        message.reply('🏓 ¡Pong!');
    }
});

// Manejo de errores
process.on('unhandledRejection', error => {
    console.error('Error no manejado:', error);
});

client.on('error', error => {
    console.error('Error de Discord:', error);
});

// Conexión con el token desde .env
client.login(process.env.DISCORD_TOKEN);

⚠️ Importante: require('dotenv').config(); debe ser la primera línea de tu archivo.


📤 Paso 3: Subir los Archivos a OuiPanel

A través del Gestor de Archivos

  1. Inicia sesión en OuiPanel
  2. Selecciona tu servidor Node.js
  3. En el menú lateral, haz clic en Gestor de archivos

  1. Elimina los archivos por defecto (si los hay)
  2. Haz clic en Subir (Upload)
  3. Sube tus archivos:
    • index.js (o bot.js, main.js...)
    • package.json
    • Tus carpetas (commands/, events/...) si es necesario

Imagen

⚠️ No subir: El archivo .env se creará directamente en el servidor en el siguiente paso.


A través de SFTP (Recomendado para varios archivos)

  1. Inicia sesión en SFTP con FileZilla
  2. Arrastra y suelta todo el contenido de tu carpeta bot
  3. Verifica que todos los archivos se hayan subido correctamente

📖 Consulta la guía "Acceso SFTP con FileZilla" para obtener instrucciones detalladas.


🔑 Paso 4: Crear el Archivo .env (Token)

¡Nunca incluyas tu token directamente en el código! Crea un archivo .env en el servidor.

Crear el archivo .env

  1. En el Administrador de archivos, haz clic en Nuevo archivo
  2. Nómbralo .env (con el punto delante)
  3. Agrega el siguiente contenido:
# Token del bot Discord
DISCORD_TOKEN=your_token_here

# Prefijo de comandos (opcional)
PREFIX=!

Imagen

  1. Haz clic en Crear o Guardar

Ejemplo con tu token real:

DISCORD_TOKEN=MTIzNDU2Nzg5MDEyMzQ1Njc4OQ.ABcdEF.abcdefghijklmnopqrstuvwxyz123456
PREFIX=!

⚠️ Importante:

  • Sin espacios alrededor del =
  • Sin comillas alrededor de los valores
  • Nunca compartas este archivo

Configuración final en el servidor

📁 Raíz del servidor/
├── 📄 .env              ← Contiene DISCORD_TOKEN
├── 📄 index.js          ← Tu código
├── 📄 package.json      ← Dependencias
└── 📁 node_modules/     ← (creado automáticamente)

⚙️ Paso 5: Configurar el Archivo de Inicio

OuiPanel necesita saber qué archivo ejecutar al inicio.

Acceder a los ajustes

  1. En el menú lateral, haz clic en Configuración
  2. Haz clic en Ajustes del servidor

Imagen


Configurar el archivo a ejecutar

Encuentra el campo Archivo a ejecutar (o Main File / Startup File):

Imagen

Tu archivo principal Valor a colocar
index.js index.js
bot.js bot.js
main.js main.js
src/index.js src/index.js
app.js app.js

⚠️ Importante: El nombre debe coincidir exactamente con tu archivo (distingue mayúsculas y minúsculas).


🚀 Paso 6: Iniciar el Bot

Iniciar el servidor

  1. En el menú lateral, haz clic en Consola
  2. Haz clic en Iniciar

Instalación automática de dependencias

En el primer inicio, el servidor ejecuta automáticamente npm install:

> npm install
added 45 packages in 3s

> node index.js
✅ Bot conectado como MiBot#1234

Imagen

✅ Paso 7: Verificar que el Bot Funciona

En la Consola OuiPanel

Deberías ver:

✅ Bot conectado como MiBot#1234

En Discord

  1. Abre Discord
  2. Deberías ver tu bot en línea (punto verde)
  3. Prueba un comando: !ping
  4. El bot responde: 🏓 ¡Pong!

Imagen


🔧 Solución de Problemas

El bot no se inicia

❌ Error ✅ Solución
No se puede encontrar el módulo 'discord.js' Verifica package.json y reinicia
No se puede encontrar el módulo 'dotenv' Agrega dotenv en package.json
Error: No se puede encontrar el módulo './index.js' Archivo de inicio incorrecto configurado
ENOENT: no existe el archivo o directorio El archivo especificado no existe

Error de Token

❌ Error ✅ Solución
Se proporcionó un token no válido Verifica el token en .env
TOKEN_INVALID Regenera el token en el portal de Discord
Se usaron intents no permitidos Activa los intents en el portal de Discord

El bot no lee los mensajes

❌ Causa ✅ Solución
INTENTO DE CONTENIDO DE MENSAJE desactivado Actívalo en el portal de Discord
Intents incorrectos en el código Agrega GatewayIntentBits.MessageContent

El archivo .env no se lee

❌ Causa ✅ Solución
dotenv no instalado Verifica que esté en package.json
require mal ubicado require('dotenv').config(); debe ser la primera línea
Archivo mal nombrado El archivo debe llamarse exactamente .env

npm install falla

❌ Error ✅ Solución
package.json no encontrado Verifica que el archivo esté en la raíz
ERESOLVE no se puede resolver Actualiza las versiones en package.json

🔒 Seguridad del archivo .env

✅ Qué hacer ❌ Qué no hacer
Mantener el .env solo en el servidor Compartir el .env
Crear el .env directamente en OuiPanel Subir el .env desde tu PC
Agregar .env al .gitignore Hacer commit del .env en GitHub

Archivo .gitignore recomendado:

# Variables de entorno
.env

# Módulos de Node
node_modules/

💡 Buenas Prácticas

Seguridad

  • Nunca compartas tu token
  • ✅ Crea el .env directamente en el servidor
  • ✅ Regenera el token si se ve comprometido

Rendimiento

  • ✅ Solo activa los intents necesarios
  • ✅ Maneja los errores con try/catch
  • ✅ Agrega logs para la depuración

📂 Estructura Avanzada (Recomendada)

Para un bot más organizado:

📁 MiBot/
├── 📄 index.js              ← Punto de entrada
├── 📄 package.json
├── 📄 .env                  ← Creado en el servidor
├── 📁 comandos/
│   ├── 📄 ping.js
│   ├── 📄 ayuda.js
│   └── 📄 info.js
├── 📁 eventos/
│   ├── 📄 listo.js
│   └── 📄 mensajeCrear.js
└── 📄 config.json           ← Configuración no sensible

📝 Resumen

1. Crear el bot en Discord Developer Portal
2. Obtener el Token y activar los Intents
3. Preparar los archivos (index.js + package.json con dotenv)
4. Subir los archivos a OuiPanel (sin el .env)
5. Crear el archivo .env en el servidor con el token
6. Configurar el archivo de inicio (index.js, bot.js...)
7. Iniciar el servidor
8. Verificar que el bot está en línea en Discord