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
- Ve al Portal de Desarrolladores de Discord
- Inicia sesión con tu cuenta de Discord
- Haz clic en Nueva Aplicación
- Da un nombre a tu aplicación (ej: "Mi Bot")
- Haz clic en Crear

Crear el bot
- En el menú de la izquierda, haz clic en Bot
- Haz clic en Añadir Bot luego en Sí, hazlo
- ¡Tu bot ha sido creado!
[Captura de pantalla: Sección Bot con el botón Añadir Bot]
Obtener el Token
- En la sección Bot, haz clic en Restablecer Token
- Confirma y copia el token mostrado
- ¡Guarda este token en secreto! Nunca lo compartas.

⚠️ 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
- Todavía en la sección Bot, desplázate hasta Privileged Gateway Intents
- Activa los intents necesarios:
- ✅
PRESENCE INTENT(opcional) - ✅
SERVER MEMBERS INTENT(opcional) - ✅
MESSAGE CONTENT INTENT(necesario para leer los mensajes)
- ✅

⚠️ Importante: Sin
MESSAGE CONTENT INTENT, tu bot no podrá leer el contenido de los mensajes.
Invitar al bot a tu servidor
- En el menú de la izquierda, haz clic en OAuth2 → Generador de URL
- En Alcances, marca
botyapplications.commands - En Permisos del Bot, marca los permisos necesarios (o
Administradorpara todo) - Copia la URL generada abajo
- Abre esta URL e invita al bot a tu servidor de Discord

📁 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
- Inicia sesión en OuiPanel
- Selecciona tu servidor Node.js
- En el menú lateral, haz clic en Gestor de archivos
- Elimina los archivos por defecto (si los hay)
- Haz clic en Subir (Upload)
- Sube tus archivos:
index.js(obot.js,main.js...)package.json- Tus carpetas (
commands/,events/...) si es necesario

⚠️ No subir: El archivo
.envse creará directamente en el servidor en el siguiente paso.
A través de SFTP (Recomendado para varios archivos)
- Inicia sesión en SFTP con FileZilla
- Arrastra y suelta todo el contenido de tu carpeta bot
- 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
- En el Administrador de archivos, haz clic en Nuevo archivo
- Nómbralo
.env(con el punto delante) - Agrega el siguiente contenido:
# Token del bot Discord
DISCORD_TOKEN=your_token_here
# Prefijo de comandos (opcional)
PREFIX=!

- 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
- En el menú lateral, haz clic en Configuración
- Haz clic en Ajustes del servidor

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

| 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
- En el menú lateral, haz clic en Consola
- 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

✅ Paso 7: Verificar que el Bot Funciona
En la Consola OuiPanel
Deberías ver:
✅ Bot conectado como MiBot#1234
En Discord
- Abre Discord
- Deberías ver tu bot en línea (punto verde)
- Prueba un comando:
!ping - El bot responde: 🏓 ¡Pong!

🔧 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
.envdirectamente 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
