- Introducción
- Características
- Requisitos del Sistema
- Instalación
- Uso
- Notificaciones
- Arquitectura del Proyecto
- Changelog
- Contribuciones
- Licencia
TeleSysBot es un versátil bot de Telegram diseñado para gestionar operaciones del sistema mediante comandos de Telegram. Además, cuenta con una interfaz web basada en Flask para monitorear y configurar el bot. Este proyecto tiene como objetivo proporcionar una interfaz fácil de usar para que los administradores de sistemas puedan gestionar y monitorear sus sistemas de manera eficiente.
- Actualizaciones del Sistema: Actualiza el sistema y Pi-hole.
- Estadísticas del Sistema: Consulta el uso de CPU, memoria, disco y carga del sistema.
- Gestión de Contenedores: Inicia, detén, reinicia y verifica el estado de los contenedores Docker.
- Gestión de Usuarios: Autentica usuarios, gestiona usuarios bloqueados.
- Monitoreo del Sistema: Monitorea el uso de recursos del sistema.
- Dashboard en Tiempo Real: Muestra estadísticas del sistema con actualización automática.
- Modo Oscuro/Claro: Alterna entre tema oscuro y claro en la interfaz web.
- Python 3.8 o superior
- Docker (para la gestión de contenedores) (opcional)
- Dependencias adicionales listadas en
requirements.txt
- Clona el repositorio:
git clone https://github.com/Jcorderop02/TeleSysBot.git cd TeleSysBot - Crea un entorno virtual e instala las dependencias:
python3 -m venv botenv source botenv/bin/activate pip install -r requirements.txt - Configura las variables de entorno creando un archivo .env:
TELEGRAM_BOT_TOKEN=<tu_token_de_telegram> TELEGRAM_BOT_PASSWORD=<tu_contraseña_de_bot> ADMIN_ID=<tu_id_de_telegram>
- Ejecuta el bot:
python3 telegram_bot.py
/start: Inicia la interacción con el bot./password <tu contraseña>: Autentica al usuario con la contraseña proporcionada./update: Actualiza el sistema y Pi-hole./stats: Muestra las estadísticas del sistema./unblock <user_id>: Desbloquea a un usuario./blocked: Muestra la lista de usuarios bloqueados./authenticated: Muestra la lista de usuarios autenticados (solo admin)./system_status: Muestra el estado del sistema./start_container <nombre_contenedor>: Inicia un contenedor Docker./stop_container <nombre_contenedor>: Detiene un contenedor Docker./restart_container <nombre_contenedor>: Reinicia un contenedor Docker./status_container <nombre_contenedor>: Muestra el estado de un contenedor Docker./container_list: Lista todos los contenedores y su estado./menu: Muestra un menú interactivo con las opciones disponibles./dashboard: Muestra un panel con las estadísticas del sistema.
Para habilitar o deshabilitar comandos, puedes modificar el archivo config.json en la raíz del proyecto. El archivo contiene una lista de comandos con valores booleanos que indican si están habilitados (true) o deshabilitados (false).
El bot incluye una interfaz web que permite actualizar la configuración de los comandos. Para acceder a la interfaz, abre un navegador web y dirígete a http://<tu_ip>:5000.
El bot enviará notificaciones al administrador cuando ocurran ciertos eventos, como múltiples intentos fallidos de autenticación o alto uso de recursos del sistema.
- telegram_bot.py: Contiene la lógica principal del bot de Telegram.
- shared.py: Módulo compartido para gestionar usuarios autenticados y bloqueados.
- app.py: Configuración de la aplicación Flask.
- templates/: Directorio que contiene las plantillas HTML para la interfaz web.
- Dashboard en Tiempo Real: Añadido soporte para mostrar estadísticas del sistema en tiempo real en la interfaz web.
- Modo Oscuro/Claro: Implementación de la funcionalidad para alternar entre modo oscuro y claro en la interfaz web.
-
Refactorización del Código:
- Modularización del código: Creación de
shared.pypara gestionar usuarios autenticados y bloqueados de forma centralizada. - Eliminación de dependencias de HTML y Flask desde
telegram_bot.py.
- Modularización del código: Creación de
-
Interfaz Web:
- Actualización de la plantilla
base.htmlpara incluir el soporte de modo oscuro/claro. - Creación de
templates/dashboard.htmlpara mostrar el dashboard en tiempo real. - Actualización de
templates/users.htmlpara mejorar la gestión de usuarios autenticados y bloqueados. - Actualización de
templates/index.htmlpara reflejar los cambios en la configuración del bot y añadir nuevas opciones.
- Actualización de la plantilla
-
Telegram Bot:
- Optimización de la carga y guardado de usuarios autenticados y bloqueados mediante el uso del módulo
shared.py. - Mejora en el manejo de comandos y modularización de funcionalidades.
- Optimización de la carga y guardado de usuarios autenticados y bloqueados mediante el uso del módulo
¡Las contribuciones son bienvenidas! Si deseas contribuir a este proyecto, por favor sigue estos pasos:
- Haz un fork del repositorio.
- Crea una nueva rama (
git checkout -b feature/nueva-funcionalidad). - Realiza tus cambios y commitea (
git commit -am 'Añadir nueva funcionalidad'). - Haz push a la rama (
git push origin feature/nueva-funcionalidad). - Abre un Pull Request.
Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo LICENSE para obtener más información.