From b9ee4093e21df9624960c747000a2156532ef68e Mon Sep 17 00:00:00 2001 From: Daniel Fernandez Sotolongo <71832032+dfedez920912@users.noreply.github.com> Date: Sat, 27 Sep 2025 12:41:22 -0400 Subject: [PATCH] actualizando --- docker-compose.yaml | 7 ++++--- watchtower_telegram_notifier.py | 24 ++++++++++++++++-------- 2 files changed, 20 insertions(+), 11 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 83f5802..4d97856 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -10,8 +10,9 @@ services: environment: - TZ=America/Havana - PYTHONUNBUFFERED=1 - # Pasa el nombre del host al contenedor del notificador - - WATCHTOWER_NOTIFICATIONS_HOSTNAME=Servidor-Easypanel + - WATCHTOWER_NOTIFICATION_REPORT_HOSTNAME=Servidor-Easypanel + - TELEGRAM_BOT_TOKEN=7676713419:AAG-tfwzgrA9JaU5xNjvG5iBlFeZpz2ahiY + - TELEGRAM_CHAT_ID=7940222048 volumes: - /var/run/docker.sock:/var/run/docker.sock depends_on: @@ -30,7 +31,7 @@ services: - WATCHTOWER_INCLUDE_STOPPED=true - WATCHTOWER_POLL_INTERVAL=86400 - WATCHTOWER_DEBUG=false - - WATCHTOWER_NOTIFICATIONS_HOSTNAME=Servidor-Easypanel + - WATCHTOWER_NOTIFICATION_REPORT_HOSTNAME=Servidor-Easypanel - WATCHTOWER_NOTIFICATION_REPORT=true volumes: - /var/run/docker.sock:/var/run/docker.sock diff --git a/watchtower_telegram_notifier.py b/watchtower_telegram_notifier.py index 8134ca0..3a670bd 100644 --- a/watchtower_telegram_notifier.py +++ b/watchtower_telegram_notifier.py @@ -4,21 +4,21 @@ Watchtower Telegram Notifier - Notificaciones personalizadas en español Monitorea los logs de Watchtower y envía notificaciones detalladas a Telegram """ +import os import docker import requests -import time import re -import os from datetime import datetime from threading import Thread import logging +import time # Configuración -TELEGRAM_BOT_TOKEN = "7676713419:AAG-tfwzgrA9JaU5xNjvG5iBlFeZpz2ahiY" -TELEGRAM_CHAT_ID = "7940222048" +# Obtener el token y el chat ID de las variables de entorno +TELEGRAM_BOT_TOKEN = os.environ.get("TELEGRAM_BOT_TOKEN") +TELEGRAM_CHAT_ID = os.environ.get("TELEGRAM_CHAT_ID") WATCHTOWER_CONTAINER_NAME = "watchtower" -# Obtener el nombre del host de una variable de entorno, con un valor por defecto -HOSTNAME = os.environ.get("WATCHTOWER_NOTIFICATIONS_HOSTNAME", "Servidor-Easypanel") +HOSTNAME = os.environ.get("WATCHTOWER_NOTIFICATION_REPORT_HOSTNAME", "Servidor-Easypanel") # Configurar logging logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s') @@ -33,6 +33,9 @@ class WatchtowerTelegramNotifier: def send_telegram_message(self, message): """Envía mensaje a Telegram""" + if not TELEGRAM_BOT_TOKEN or not TELEGRAM_CHAT_ID: + logger.error("❌ ERROR: TELEGRAM_BOT_TOKEN o TELEGRAM_CHAT_ID no están definidos.") + return False try: payload = { 'chat_id': TELEGRAM_CHAT_ID, @@ -44,7 +47,7 @@ class WatchtowerTelegramNotifier: logger.info("✅ Mensaje enviado a Telegram exitosamente") return True else: - logger.error(f"❌ Error enviando mensaje: {response.status_code}") + logger.error(f"❌ Error enviando mensaje: {response.status_code} - {response.text}") return False except Exception as e: logger.error(f"❌ Error conectando a Telegram: {e}") @@ -228,7 +231,12 @@ def main(): notifier = WatchtowerTelegramNotifier() - # Verificar conexión a Telegram + # Verificar si las credenciales están presentes + if not TELEGRAM_BOT_TOKEN or not TELEGRAM_CHAT_ID: + logger.error("❌ Error: Variables de entorno de Telegram no encontradas. Asegúrate de pasarlas en el docker-compose.yaml.") + return + + # Enviar mensaje de verificación inicial test_message = f"🤖 Bot de notificaciones iniciado\n\n🏠 Servidor: {HOSTNAME}\n📅 Fecha: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}\n\n✅ Conexión establecida correctamente" if notifier.send_telegram_message(test_message):