Skip to content

JDProgramer802/sentrix-security-bot

Repository files navigation

πŸ›‘οΈ SentriX Security Bot

Sistema Global de Seguridad para WhatsApp

TypeScript Node.js Docker License

Bot de seguridad avanzado para WhatsApp con soporte global, blacklist automΓ‘tica, reportes y auditorΓ­a completa.

CaracterΓ­sticas β€’ InstalaciΓ³n β€’ Comandos β€’ Docker β€’ Arquitectura


✨ Características

πŸ” Seguridad Avanzada

  • βœ… Blacklist Global: Sistema de baneos permanentes con sincronizaciΓ³n automΓ‘tica
  • βœ… Auto-ExpulsiΓ³n: Expulsa automΓ‘ticamente usuarios baneados al unirse a grupos
  • βœ… ValidaciΓ³n Internacional: Soporte para nΓΊmeros de +195 paΓ­ses (formato E.164)
  • βœ… AuditorΓ­a Completa: Registro detallado de todas las acciones con timestamps

πŸ“Š GestiΓ³n y Reportes

  • βœ… Sistema de Reportes: Seguimiento de usuarios sospechosos con historial
  • βœ… ExportaciΓ³n MΓΊltiple: Genera reportes en PDF y Excel profesionales
  • βœ… BΓΊsqueda Avanzada: Localiza usuarios en blacklist y reportes instantΓ‘neamente
  • βœ… Panel Web: Interfaz moderna con Next.js 15 y React 19

πŸš€ TecnologΓ­a

  • βœ… TypeScript: CΓ³digo type-safe y mantenible
  • βœ… Arquitectura Modular: Comandos y eventos separados
  • βœ… Docker Ready: Despliegue 24/7 con un solo comando
  • βœ… ReconexiΓ³n AutomΓ‘tica: Sistema resiliente con backoff exponencial
  • βœ… QR Code Auth: AutenticaciΓ³n segura sin pairing code

πŸš€ InstalaciΓ³n

Requisitos Previos

  • Node.js 22+ (Descargar)
  • npm o pnpm
  • Docker Desktop (opcional, para despliegue 24/7)

InstalaciΓ³n RΓ‘pida

# Clonar el repositorio
git clone https://github.com/tu-usuario/sentrix-security-bot.git
cd sentrix-security-bot

# Instalar dependencias
npm install

# Iniciar en modo desarrollo
npm run dev

Opciones de EjecuciΓ³n

πŸ”Ή Modo Desarrollo (Bot + Panel Web)

npm run dev
# Bot: Terminal
# Panel: http://localhost:3000

πŸ”Ή Solo Bot

npm run bot

πŸ”Ή Solo Panel Web

npm run dev:web

πŸ”Ή ProducciΓ³n

npm run build
npm start

🐳 Docker

Despliegue 24/7 con Docker

La forma mΓ‘s fΓ‘cil y confiable de ejecutar SentriX 24/7:

# Iniciar bot y panel web
npm run docker:up

# Ver logs en tiempo real
npm run docker:logs

# Ver estado de contenedores
npm run docker:status

# Reiniciar servicios
npm run docker:restart

# Detener todo
npm run docker:down

# Reconstruir despuΓ©s de cambios
npm run docker:build

Servicios Docker

Persistencia de Datos

Los siguientes directorios se montan como volΓΊmenes:

  • src/auth/ - SesiΓ³n de WhatsApp (QR code)
  • src/data/ - Blacklist, reportes, configuraciΓ³n
  • src/logs/ - AuditorΓ­a y logs del sistema
  • src/exports/ - Archivos PDF y Excel generados

πŸ“± Comandos

πŸ” Seguridad

Comando DescripciΓ³n Ejemplo
/ban <nΓΊmero> <motivo> Banear usuario permanentemente /ban +573001234567 spam
/blacklist Ver lista completa de baneados /blacklist
/kick black <nΓΊmero> Expulsar usuario especΓ­fico del grupo /kick black +573001234567
/kick allblack Expulsar todos los baneados del grupo /kick allblack

πŸ“‹ Reportes

Comando DescripciΓ³n Ejemplo
/addreport <nΓΊmero> <motivo> Agregar reporte de usuario /addreport +573001234567 comportamiento sospechoso
/report Ver todos los reportes activos /report
/buscar <nΓΊmero> Buscar usuario en blacklist y reportes /buscar +573001234567

βš™οΈ Sistema

Comando DescripciΓ³n Ejemplo
/ping Verificar latencia del bot /ping
/menu Mostrar menΓΊ completo de comandos /menu
/setprefijo <nuevo> Cambiar prefijo de comandos /setprefijo !
/export <tipo> Exportar datos (pdf/excel) /export pdf o /export excel

πŸ—οΈ Arquitectura

DiseΓ±o del Sistema

SentriX utiliza una arquitectura de dos procesos independientes que se comunican vΓ­a WebSocket:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    SENTRIX SYSTEM                       β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                         β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”    β”‚
β”‚  β”‚   Panel Web      β”‚         β”‚   WhatsApp Bot   β”‚    β”‚
β”‚  β”‚  (Next.js 15)    │◄───────►│   (Baileys)      β”‚    β”‚
β”‚  β”‚  Express + WS    β”‚  Socket β”‚   TypeScript     β”‚    β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜    β”‚
β”‚         β”‚                              β”‚               β”‚
β”‚         β”‚                              β”‚               β”‚
β”‚         β–Ό                              β–Ό               β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚
β”‚  β”‚         Persistent Storage (JSON)               β”‚  β”‚
β”‚  β”‚  β€’ blacklist.json  β€’ reports.json              β”‚  β”‚
β”‚  β”‚  β€’ config.json     β€’ audit.json                β”‚  β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Flujo de Eventos

  1. ConexiΓ³n: Bot se conecta a WhatsApp vΓ­a QR code
  2. Monitoreo: Escucha eventos de mensajes y grupos
  3. ValidaciΓ³n: Verifica comandos y permisos de admin
  4. Procesamiento: Ejecuta comandos modulares
  5. Persistencia: Guarda cambios en JSON local
  6. AuditorΓ­a: Registra todas las acciones
  7. SincronizaciΓ³n: Actualiza panel web vΓ­a WebSocket

οΏ½ Estructura del Proyecto

``` src/ β”œβ”€β”€ index.ts # Punto de entrada β”œβ”€β”€ handler.ts # Manejador de comandos β”œβ”€β”€ types/ # Definiciones TypeScript β”œβ”€β”€ commands/ # Comandos individuales β”‚ β”œβ”€β”€ ban.ts β”‚ β”œβ”€β”€ blacklist.ts β”‚ β”œβ”€β”€ addreport.ts β”‚ β”œβ”€β”€ report.ts β”‚ β”œβ”€β”€ buscar.ts β”‚ β”œβ”€β”€ ping.ts β”‚ β”œβ”€β”€ menu.ts β”‚ β”œβ”€β”€ setprefix.ts β”‚ β”œβ”€β”€ export.ts β”‚ β”œβ”€β”€ kickBlack.ts β”‚ └── kickAllBlack.ts β”œβ”€β”€ events/ # Manejadores de eventos β”‚ β”œβ”€β”€ groupJoin.ts β”‚ └── connection.ts β”œβ”€β”€ utils/ # Utilidades β”‚ β”œβ”€β”€ storage.ts β”‚ β”œβ”€β”€ validator.ts β”‚ └── formatter.ts β”œβ”€β”€ data/ # Almacenamiento JSON β”‚ β”œβ”€β”€ blacklist.json β”‚ β”œβ”€β”€ reports.json β”‚ └── config.json β”œβ”€β”€ logs/ # AuditorΓ­a β”‚ └── audit.json β”œβ”€β”€ exports/ # Exportaciones └── auth/ # SesiΓ³n de WhatsApp ```

🌍 Validación Internacional

El bot utiliza libphonenumber-js para validar nΓΊmeros de telΓ©fono de todos los paΓ­ses del mundo en formato E.164.

Ejemplos de nΓΊmeros vΓ‘lidos:

  • +1 555 123 4567 (USA)
  • +52 55 1234 5678 (MΓ©xico)
  • +58 424 201 1278 (Venezuela)
  • +34 612 34 56 78 (EspaΓ±a)
  • +86 138 0000 0000 (China)

πŸ” Seguridad

  • ExpulsiΓ³n automΓ‘tica de usuarios blacklisted al unirse a grupos
  • AuditorΓ­a completa de todas las acciones
  • ValidaciΓ³n de permisos de administrador
  • Registro de actores en cada acciΓ³n

πŸ“Š ExportaciΓ³n de Datos

El bot puede exportar todos los datos a:

  • PDF: Reporte completo con formato profesional
  • Excel: Hojas separadas para blacklist, reportes y auditorΓ­a

πŸ› οΈ Stack TecnolΓ³gico

Backend (Bot)

Frontend (Panel)

ExportaciΓ³n

  • ExcelJS - GeneraciΓ³n de archivos Excel
  • PDFKit - GeneraciΓ³n de PDFs
  • Sharp - Procesamiento de imΓ‘genes

DevOps

  • Docker - ContainerizaciΓ³n
  • Docker Compose - OrquestaciΓ³n multi-contenedor
  • PM2 - Process manager (alternativa)

πŸ“Έ Screenshots

Bot en AcciΓ³n

╔═══════════════════════════════════════╗
β•‘   βœ… SENTRIX SECURITY BOT ACTIVO     β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•

πŸ” Bot conectado y listo para moderar
πŸ’  Desarrollado por Andres
♻️ Modo 24/7 activado

Panel Web

  • Dashboard con estadΓ­sticas en tiempo real
  • GestiΓ³n de blacklist y reportes
  • VisualizaciΓ³n de auditorΓ­a
  • ExportaciΓ³n de datos

πŸ”’ Seguridad y Privacidad

  • βœ… Sin almacenamiento en la nube: Todos los datos se guardan localmente
  • βœ… AutenticaciΓ³n QR: No requiere nΓΊmero de telΓ©fono ni pairing code
  • βœ… ValidaciΓ³n de permisos: Solo administradores pueden ejecutar comandos
  • βœ… AuditorΓ­a completa: Registro de quiΓ©n, quΓ©, cuΓ‘ndo y dΓ³nde
  • βœ… Formato E.164: ValidaciΓ³n estricta de nΓΊmeros internacionales

πŸ› Troubleshooting

El bot no se conecta

# Eliminar sesiΓ³n anterior
rm -rf src/auth/*

# Reiniciar bot
npm run bot

Error con PM2 en Windows

PM2 tiene problemas con Node.js 22 en Windows. Usa Docker:

npm run docker:up

Puerto 3000 ocupado

# Cambiar puerto en docker-compose.yml
ports:
  - "3001:3000"  # Usa 3001 en lugar de 3000

🀝 Contribuir

ΒΏQuieres mejorar SentriX? Β‘Las contribuciones son bienvenidas!

  1. Fork el proyecto
  2. Crea una rama para tu feature (git checkout -b feature/AmazingFeature)
  3. Commit tus cambios (git commit -m 'Add: AmazingFeature')
  4. Push a la rama (git push origin feature/AmazingFeature)
  5. Abre un Pull Request

πŸ“ž Soporte

ΒΏNecesitas ayuda?


πŸ—ΊοΈ Roadmap

  • API REST para integraciΓ³n externa
  • Base de datos PostgreSQL (opcional)
  • Comandos con IA (OpenAI/Gemini)
  • Multi-idioma (i18n)
  • Sistema de roles y permisos
  • EstadΓ­sticas avanzadas con grΓ‘ficos
  • Webhooks para notificaciones
  • App mΓ³vil (React Native)

πŸ‘¨β€πŸ’» Desarrollador

Desarrollado por Andres πŸ’ 

πŸ“„ Licencia

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published