Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jcorderop02/telesysbot
https://github.com/jcorderop02/telesysbot
bot flask pihole python raspberry-pi telegram telegram-bot
Last synced: 29 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/jcorderop02/telesysbot
- Owner: Jcorderop02
- License: mit
- Created: 2024-07-29T19:46:47.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-07-31T17:57:09.000Z (3 months ago)
- Last Synced: 2024-10-10T02:20:55.195Z (29 days ago)
- Topics: bot, flask, pihole, python, raspberry-pi, telegram, telegram-bot
- Language: Python
- Homepage:
- Size: 19.5 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
TeleSysBot - Bot de Gestión de Sistemas para Telegram
TeleSysBot
## Tabla de Contenidos
- [Introducción](#introducción)
- [Características](#características)
- [Requisitos del Sistema](#requisitos-del-sistema)
- [Instalación](#instalación)
- [Uso](#uso)
- [Comandos Disponibles](#comandos-disponibles)
- [Configuración](#configuración)
- [Interfaz Web](#interfaz-web)
- [Notificaciones](#notificaciones)
- [Arquitectura del Proyecto](#arquitectura-del-proyecto)
- [Changelog](#changelog)
- [Contribuciones](#contribuciones)
- [Licencia](#licencia)## Introducción
**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.
## Características
- **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.## Requisitos del Sistema
- Python 3.8 o superior
- Docker (para la gestión de contenedores) (opcional)
- Dependencias adicionales listadas en `requirements.txt`## Instalación
1. Clona el repositorio:
```bash
git clone https://github.com/Jcorderop02/TeleSysBot.git
cd TeleSysBot
2. Crea un entorno virtual e instala las dependencias:
```bash
python3 -m venv botenv
source botenv/bin/activate
pip install -r requirements.txt
3. Configura las variables de entorno creando un archivo .env:
```bash
TELEGRAM_BOT_TOKEN=
TELEGRAM_BOT_PASSWORD=
ADMIN_ID=
4. Ejecuta el bot:
```bash
python3 telegram_bot.py
## Uso### Comandos Disponibles
- `/start`: Inicia la interacción con el bot.
- `/password `: Autentica al usuario con la contraseña proporcionada.
- `/update`: Actualiza el sistema y Pi-hole.
- `/stats`: Muestra las estadísticas del sistema.
- `/unblock `: 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 `: Inicia un contenedor Docker.
- `/stop_container `: Detiene un contenedor Docker.
- `/restart_container `: Reinicia un contenedor Docker.
- `/status_container `: 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.### Configuración
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`).
### Interfaz Web
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://:5000`.
### Notificaciones
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.
## Arquitectura del Proyecto
- **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.## Changelog
### Versión 1.0.1
#### Nuevas Características
- **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.#### Mejoras
- **Refactorización del Código**:
- Modularización del código: Creación de `shared.py` para gestionar usuarios autenticados y bloqueados de forma centralizada.
- Eliminación de dependencias de HTML y Flask desde `telegram_bot.py`.- **Interfaz Web**:
- Actualización de la plantilla `base.html` para incluir el soporte de modo oscuro/claro.
- Creación de `templates/dashboard.html` para mostrar el dashboard en tiempo real.
- Actualización de `templates/users.html` para mejorar la gestión de usuarios autenticados y bloqueados.
- Actualización de `templates/index.html` para reflejar los cambios en la configuración del bot y añadir nuevas opciones.- **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.## Contribuciones
¡Las contribuciones son bienvenidas! Si deseas contribuir a este proyecto, por favor sigue estos pasos:
1. Haz un fork del repositorio.
2. Crea una nueva rama (`git checkout -b feature/nueva-funcionalidad`).
3. Realiza tus cambios y commitea (`git commit -am 'Añadir nueva funcionalidad'`).
4. Haz push a la rama (`git push origin feature/nueva-funcionalidad`).
5. Abre un Pull Request.## Licencia
Este proyecto está licenciado bajo la Licencia MIT. Consulta el archivo [LICENSE](LICENSE) para obtener más información.