Primer commit del sistema separado falta mejorar mucho
This commit is contained in:
236
README.md
Executable file
236
README.md
Executable file
@@ -0,0 +1,236 @@
|
||||
# Sistema de Administración de Bots - Discord & Telegram
|
||||
|
||||
Sistema completo de administración para bots de Discord y Telegram con panel web, gestión de mensajes, plantillas, destinatarios y más.
|
||||
|
||||
## 🚀 Características Principales
|
||||
|
||||
- ✨ **Panel de Administración Web** - Interfaz moderna para gestionar ambos bots
|
||||
- 🔐 **Autenticación JWT** con roles (Admin, Editor) y permisos granulares
|
||||
- 📝 **Gestión de Mensajes** - Envío inmediato, programado y recurrente
|
||||
- 📋 **Sistema de Plantillas** - Crear y reutilizar plantillas de mensajes
|
||||
- 👥 **Gestión de Destinatarios** - Usuarios, canales y grupos
|
||||
- 🖼️ **Galería de Imágenes** compartida con thumbnails automáticos
|
||||
- 🤖 **Comandos** - Slash Commands (Discord) y comandos de texto (Telegram)
|
||||
- 👋 **Mensaje de Bienvenida** configurable con soporte multiidioma
|
||||
- 📊 **Sistema de Logs** completo con filtrado y visualización
|
||||
- 🌐 **Traducción Automática** con LibreTranslate
|
||||
- 🔔 **Notificaciones Toast** no intrusivas
|
||||
|
||||
## 📋 Requisitos
|
||||
|
||||
- PHP >= 8.0
|
||||
- MySQL 5.7+ o MariaDB 10.3+
|
||||
- Extensiones PHP: pdo, pdo_mysql, json, gd, curl, sodium
|
||||
- Composer
|
||||
- Servidor web (Apache/Nginx)
|
||||
- LibreTranslate (opcional, para traducciones)
|
||||
|
||||
## 🔧 Instalación
|
||||
|
||||
1. **Clonar el repositorio**
|
||||
```bash
|
||||
git clone http://10.10.4.17:3002/nickpons666/sistema_para_juego.git
|
||||
cd sistema_para_juego
|
||||
```
|
||||
|
||||
2. **Instalar dependencias**
|
||||
```bash
|
||||
composer install
|
||||
```
|
||||
|
||||
3. **Configurar variables de entorno**
|
||||
```bash
|
||||
cp .env.example .env
|
||||
nano .env
|
||||
```
|
||||
|
||||
Edita las siguientes variables:
|
||||
```
|
||||
APP_URL=https://tu-dominio.com
|
||||
DB_HOST=tu-host-db
|
||||
DB_PORT=3306
|
||||
DB_NAME=tu-base-de-datos
|
||||
DB_USER=tu-usuario
|
||||
DB_PASS=tu-contraseña
|
||||
|
||||
DISCORD_GUILD_ID=tu-guild-id
|
||||
DISCORD_BOT_TOKEN=tu-bot-token
|
||||
|
||||
TELEGRAM_BOT_TOKEN=tu-bot-token
|
||||
TELEGRAM_WEBHOOK_TOKEN=token-secreto-webhook
|
||||
|
||||
JWT_SECRET=clave-secreta-muy-larga
|
||||
|
||||
LIBRETRANSLATE_URL=http://localhost:5000
|
||||
```
|
||||
|
||||
4. **Crear la base de datos**
|
||||
```bash
|
||||
mysql -u tu-usuario -p < shared/database/schema.sql
|
||||
```
|
||||
|
||||
5. **Crear usuario administrador**
|
||||
```bash
|
||||
php create_admin.php
|
||||
```
|
||||
|
||||
6. **Configurar permisos de carpetas**
|
||||
```bash
|
||||
chmod -R 755 gallery/uploads gallery/thumbnails
|
||||
chown -R www-data:www-data gallery/uploads gallery/thumbnails
|
||||
```
|
||||
|
||||
7. **Configurar Webhooks**
|
||||
|
||||
**Discord:**
|
||||
- Ve a la configuración del bot en Discord Developer Portal
|
||||
- Configura el webhook: `https://tu-dominio.com/discord/webhook/index.php`
|
||||
|
||||
**Telegram:**
|
||||
```bash
|
||||
curl -X POST "https://api.telegram.org/bot<TU_BOT_TOKEN>/setWebhook" \
|
||||
-d "url=https://tu-dominio.com/telegram/webhook/index.php" \
|
||||
-d "secret_token=<TU_TOKEN_WEBHOOK>"
|
||||
```
|
||||
|
||||
## 📁 Estructura del Proyecto
|
||||
|
||||
```
|
||||
/
|
||||
├── discord/ # Módulos de Discord
|
||||
│ ├── api/ # APIs REST (messages, templates, recipients)
|
||||
│ ├── views/ # Vistas HTML (messages, templates, recipients, logs)
|
||||
│ └── webhook/ # Webhook receptor de Discord
|
||||
├── telegram/ # Módulos de Telegram
|
||||
│ ├── api/ # APIs REST (messages, templates, recipients)
|
||||
│ ├── views/ # Vistas HTML (messages, templates, recipients, logs)
|
||||
│ └── webhook/ # Webhook receptor de Telegram
|
||||
├── gallery/ # Sistema de galería compartido
|
||||
│ ├── api/ # APIs REST (upload, list, edit, delete)
|
||||
│ ├── uploads/ # Imágenes subidas
|
||||
│ └── thumbnails/ # Thumbnails generados
|
||||
├── shared/ # Código compartido
|
||||
│ ├── auth/ # Sistema de autenticación JWT
|
||||
│ ├── database/ # Conexión a base de datos
|
||||
│ ├── languages/ # Gestión de idiomas
|
||||
│ ├── translations/ # Archivos de traducción
|
||||
│ ├── utils/ # Helpers y funciones utilitarias
|
||||
│ └── public/js/ # JavaScript compartido (notificaciones)
|
||||
├── admin/ # Panel de administración de usuarios
|
||||
├── .env # Variables de entorno
|
||||
├── login.php # Página de login
|
||||
├── index.php # Panel principal
|
||||
└── create_admin.php # Script para crear admin
|
||||
```
|
||||
|
||||
## 🎯 Uso
|
||||
|
||||
### Acceso al Sistema
|
||||
|
||||
1. Abre tu navegador y ve a `https://tu-dominio.com/login.php`
|
||||
2. Ingresa con las credenciales del admin que creaste
|
||||
3. Selecciona Discord o Telegram desde el panel principal
|
||||
|
||||
### Enviar un Mensaje
|
||||
|
||||
1. Ve a **Crear Mensaje** en la plataforma deseada
|
||||
2. Selecciona el destinatario (o múltiples)
|
||||
3. Escribe el contenido o carga una plantilla
|
||||
4. Puedes insertar imágenes desde la galería
|
||||
5. Selecciona: Inmediato, Programado o Recurrente
|
||||
6. Haz clic en **Enviar**
|
||||
|
||||
### Crear una Plantilla
|
||||
|
||||
1. Ve a **Plantillas**
|
||||
2. Haz clic en **Crear Plantilla**
|
||||
3. Asigna un nombre, comando (opcional) y contenido
|
||||
4. Guarda y previsualiza
|
||||
|
||||
### Configurar Mensaje de Bienvenida
|
||||
|
||||
1. Ve a **Mensaje de Bienvenida**
|
||||
2. Activa/Desactiva la opción
|
||||
3. Configura el canal destino
|
||||
4. Escribe el mensaje con soporte HTML
|
||||
5. Selecciona imagen opcional
|
||||
6. Elige idiomas habilitados
|
||||
7. Prueba el mensaje antes de guardar
|
||||
|
||||
## 🔒 Seguridad
|
||||
|
||||
- Tokens JWT con expiración configurable
|
||||
- Verificación de permisos por rol para cada acción
|
||||
- Validación de webhooks (Discord Ed25519, Telegram secret_token)
|
||||
- Sanitización de entradas y prevención de SQL injection
|
||||
- Logs de errores y actividad
|
||||
|
||||
## 📊 Estado del Proyecto
|
||||
|
||||
- ✅ Fase 1-3: Preparación, Base de Datos, Autenticación - **100%**
|
||||
- ✅ Fase 4.1: Plataforma Discord - **100%**
|
||||
- ✅ Fase 4.2: Plataforma Telegram - **100%**
|
||||
- ✅ Fase 5: Módulos Compartidos - **100%**
|
||||
- ⏳ Fase 6: Documentación y Pruebas Finales - **En progreso**
|
||||
|
||||
## 🛠️ Tecnologías Utilizadas
|
||||
|
||||
- **Backend:** PHP 8.0+
|
||||
- **Frontend:** HTML5, CSS3, JavaScript, Bootstrap 5, Summernote
|
||||
- **Autenticación:** Firebase JWT
|
||||
- **Base de Datos:** MySQL/MariaDB
|
||||
- **API Discord:** team-reflex/discord-php
|
||||
- **API Telegram:** telegram-bot/api
|
||||
- **Traducción:** LibreTranslate
|
||||
- **Automatización:** n8n (integración opcional)
|
||||
|
||||
## 📝 Scripts de Mantenimiento
|
||||
|
||||
### Verificar conexión con Discord
|
||||
```bash
|
||||
php discord/test_connection.php
|
||||
```
|
||||
|
||||
### Verificar conexión con Telegram
|
||||
```bash
|
||||
php telegram/test_connection.php
|
||||
```
|
||||
|
||||
### Verificar idiomas
|
||||
```bash
|
||||
php check_idiomas.php
|
||||
```
|
||||
|
||||
### Verificar intents de Discord
|
||||
```bash
|
||||
php check_intents.php
|
||||
```
|
||||
|
||||
## 🐛 Troubleshooting
|
||||
|
||||
### Error de conexión a base de datos
|
||||
- Verifica las credenciales en `.env`
|
||||
- Asegúrate de que el servidor MySQL esté corriendo
|
||||
- Verifica permisos del usuario en la base de datos
|
||||
|
||||
### Webhook no recibe mensajes
|
||||
- Verifica que la URL sea accesible públicamente (HTTPS)
|
||||
- Para Discord: Verifica la verificación Ed25519 (extensión sodium)
|
||||
- Para Telegram: Verifica el secret_token en el webhook
|
||||
|
||||
### Imágenes no se suben
|
||||
- Verifica permisos de las carpetas `gallery/uploads` y `gallery/thumbnails`
|
||||
- Verifica configuración de upload_max_filesize en php.ini
|
||||
- Asegúrate de que GD esté habilitado en PHP
|
||||
|
||||
## 📞 Soporte
|
||||
|
||||
Para reportar issues o sugerir mejoras, visita el repositorio en Gitea:
|
||||
http://10.10.4.17:3002/nickpons666/sistema_para_juego
|
||||
|
||||
## 📄 Licencia
|
||||
|
||||
Este proyecto es de uso privado. Todos los derechos reservados.
|
||||
|
||||
---
|
||||
**Desarrollado para gestión de bots de Discord y Telegram**
|
||||
Reference in New Issue
Block a user