Aviso de arranque y panel de telemetría local para un PC con Windows.
Boot alerts and a local telemetry dashboard for a Windows PC.
Instalación · Funciones · Seguridad · Licencia
OpenSentinel es una aplicación en Python que se ejecuta en tu propio PC con Windows. Al encender el equipo envía un solo aviso por arranque a Discord, Telegram o WhatsApp y levanta un panel web local (Flask, puerto 8888) para ver el estado del equipo y hacer acciones básicas desde otro dispositivo de tu red o por Tailscale.
No usa ningún servidor propio en la nube: los datos se quedan en tu PC salvo los avisos que tú decidas enviar a tus canales.
- Aviso de arranque sin duplicados. Guarda la marca de arranque en
boot_session.jsony solo avisa una vez por encendido (--force-alertlo fuerza). - Tres canales. Webhook de Discord (con hilo opcional), bot de Telegram y WhatsApp vía CallMeBot o un webhook propio.
- Panel local. CPU, RAM, discos, ventana activa, lista de procesos y opción de cerrarlos.
- Captura y webcam. Captura de pantalla y foto de webcam bajo demanda (se pueden desactivar).
- Búfer en memoria. Guarda los últimos 300 fotogramas en RAM (unos 5 minutos) y los exporta a
evidencia_actual.mp4cuando lo pides. Se pausa con juegos o programas pesados como Blender. - Botón de pánico. Hace una foto con la webcam, silencia el audio y bloquea la sesión de Windows.
- Energía. Bloquear, suspender, apagar, reiniciar, cancelar, volumen y Wake-on-LAN.
- Asistente de configuración.
python main.py --setupte guía por los canales y las opciones. - Idiomas. Interfaz en español e inglés (
LANGUAGE).
| Parte | Tecnología |
|---|---|
| Servidor y panel | Python 3.10+, Flask, plantilla HTML única |
| Telemetría | psutil |
| Captura y vídeo | Pillow, OpenCV, NumPy |
| Avisos | requests (Discord, Telegram, WhatsApp) |
| Configuración | config.json o .env (python-dotenv) |
| Arranque automático | Acceso directo en la carpeta Inicio de Windows (scripts/install.bat) |
| Acceso remoto opcional | Tailscale o Caddy como proxy inverso |
flowchart LR
Boot[Arranque de Windows] --> Main[main.py]
Main --> Disp[Notificadores]
Disp --> Discord
Disp --> Telegram
Disp --> WhatsApp
Main --> Web[Panel Flask :8888]
Main --> Surv[Hilos de captura]
Surv --> RAM[(Búfer de 300 fotogramas en RAM)]
Web --> Core[src/core: hardware, procesos, energía, pánico]
Web --> RAM
Phone[Móvil o portátil en tu LAN o Tailscale] --> Web
Léelo antes de instalarlo: el panel puede cerrar procesos, apagar el PC y ver la pantalla y la webcam.
- El panel no tiene usuario ni contraseña. Solo filtra por IP de origen: acepta
127.0.0.1,::1y rangos que empiezan por10.,192.168.,172.y100.(Tailscale). Cualquiera en tu misma red local puede usarlo. - No abras el puerto 8888 en el router. Para acceso remoto usa Tailscale.
ENABLE_WEBCAM,ENABLE_SCREENSHOTyENABLE_CMD_EXECUTIONpermiten desactivar las funciones más sensibles.config.jsony.envcontienen tokens de tus canales. Están en.gitignore; no los subas.- Consulta SECURITY.md para reportar vulnerabilidades.
Requisitos: Windows 10 u 11 y Python 3.10 o superior.
git clone https://github.com/ATM-Software-Labs/open-sentinel.git
cd open-sentinel
pip install -r requirements.txt
python main.py --setup
python main.pyTambién puedes usar los scripts de scripts/:
| Script | Qué hace |
|---|---|
setup.bat |
Lanza el asistente de configuración |
install.bat |
Instala dependencias y crea el acceso directo de arranque automático |
start.bat / stop.bat |
Arranca o para el servicio |
run_hidden.vbs |
Lo arranca sin ventana de consola |
setup_network.ps1 |
Descarga Caddy y prepara el acceso por Tailscale |
uninstall.bat |
Quita el arranque automático |
| Opción | Uso |
|---|---|
--setup |
Asistente de configuración |
--alert-only |
Envía el aviso de arranque y sale |
--force-alert |
Envía el aviso aunque ya se haya enviado en esta sesión |
--test-notifiers |
Manda un mensaje de prueba a cada canal activo |
--port N |
Cambia el puerto del panel |
Copia config.example.json a config.json o .env.example a .env. Variables (solo nombres):
| Grupo | Variables |
|---|---|
| General | SERVER_NAME, PORT, HOST, LANGUAGE, AUTO_ALERT_ON_BOOT |
| Discord | DISCORD_ENABLED, DISCORD_WEBHOOK_URL, DISCORD_THREAD_ID |
| Telegram | TELEGRAM_ENABLED, TELEGRAM_BOT_TOKEN, TELEGRAM_CHAT_ID |
WHATSAPP_ENABLED, WHATSAPP_PROVIDER, WHATSAPP_PHONE, WHATSAPP_API_KEY, WHATSAPP_WEBHOOK_URL |
|
| Funciones | ENABLE_WEBCAM, ENABLE_SCREENSHOT, ENABLE_CMD_EXECUTION |
main.py Punto de entrada y opciones CLI
src/config.py Carga de config.json / .env
src/i18n.py Textos en español e inglés
src/core/ Hardware, red, procesos, energía, captura, pánico, asistente
src/notifiers/ Discord, Telegram, WhatsApp y el despachador
src/web/app.py Panel Flask y API local
src/web/templates/ Interfaz del panel
scripts/ Instalación y arranque en Windows
Lee CONTRIBUTING.md. Abre un issue antes de cambios grandes y prueba en Windows antes de enviar un PR.
MIT.
© 2026 ATM Software Labs