Para habilitar la integración y control de notificaciones de Discord, añade las siguientes variables de entorno a tu proyecto Railway:
DISCORD_BOT_TOKEN=your_bot_token_here
DISCORD_FORUM_CHANNEL_ID=your_forum_channel_id_here
DISCORD_ENABLED=true
- DISCORD_BOT_TOKEN: Token de tu bot de Discord
- DISCORD_FORUM_CHANNEL_ID: ID del canal de foro donde se crearán los hilos
- DISCORD_ENABLED:
truepara habilitar notificaciones, cualquier otro valor (o no definido) las desactiva
- Ve a Discord Developer Portal
- Crea una nueva aplicación y añade un bot
- Copia el token del bot y pégalo como
DISCORD_BOT_TOKENen Railway
- Crea un canal de foro en tu servidor Discord (ej: "tournaments")
- Haz clic derecho y selecciona "Copy Channel ID"
- Pega ese valor como
DISCORD_FORUM_CHANNEL_IDen Railway
- En OAuth2 > URL Generator, selecciona el scope
boty los permisos:- Send Messages
- Create Public Threads
- Manage Threads
- Autoriza el bot en tu servidor
La variable DISCORD_ENABLED permite activar o desactivar las notificaciones de Discord sin depender del entorno de despliegue:
DISCORD_ENABLED=true→ Discord habilitado ✅DISCORD_ENABLED=falseo no definido → Discord deshabilitado ⏭️
Recomendación:
- En producción:
DISCORD_ENABLED=true - En test/desarrollo:
DISCORD_ENABLED=falseo no definida
- Si
DISCORD_ENABLEDestrue, el sistema enviará notificaciones a Discord normalmente. - Si está en
falseo no definida, los métodos de notificación retornan sin error y se loguea que Discord está deshabilitado. - El sistema es tolerante a fallos: si la API de Discord falla o las variables no están configuradas, el resto de la aplicación sigue funcionando.
- El estado de Discord y los skips se loguean en consola para trazabilidad.
Ejemplo de log al iniciar:
🔔 Discord Service: ✅ ENABLED (DISCORD_ENABLED=true)
O si está deshabilitado:
🔔 Discord Service: ⏭️ DISABLED (DISCORD_ENABLED=not set)
Ejemplo de log al intentar notificar con Discord deshabilitado:
⏭️ Discord disabled (DISCORD_ENABLED=false). Skipping thread creation.
Una vez configurado:
✅ Crea un hilo de Discord automáticamente al crear un torneo
✅ Publica actualizaciones de participantes, inicio, rondas y resultados
✅ Permite comentarios en el hilo de Discord sin restricciones
- Crea un torneo en la aplicación
- Verifica que aparece un hilo en el canal de foro de Discord
- Si
DISCORD_ENABLEDestá desactivado, revisa los logs para confirmar que las operaciones se omiten correctamente
- El servicio de Discord en
backend/src/services/discordService.tsusa:const DISCORD_ENABLED = process.env.DISCORD_ENABLED === 'true'; console.log(`🔔 Discord Service: ${DISCORD_ENABLED ? '✅ ENABLED' : '⏭️ DISABLED'} (DISCORD_ENABLED=${process.env.DISCORD_ENABLED || 'not set'})`);
- Todos los métodos de notificación están protegidos por este flag y loguean si se omite la operación.
- Control independiente: Puedes activar/desactivar Discord sin cambiar el entorno
- Tolerancia a fallos: El sistema nunca falla por problemas de Discord
- Logs claros: Siempre sabrás si Discord está activo y por qué
- Fácil de usar: Solo cambia la variable en Railway
Para problemas con la API de Discord, consulta la documentación oficial