Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
openclaw-dashboard — 🔐 Panel de monitoreo seguro y en tiempo real para agentes de OpenClaw AI. Autenticación, TOTP MFA, seguimiento de costos, feed en vivo, explorador de memoria y más. | Kitploit
Herramientas/GitHubGitHub/tugcantopaloglu/openclaw-dashboard
Seguridad de ContenedoresAuditoría de ConfiguraciónSeguridad de RedesSeguridad en la NubeDevSecOpsDetección de SecretosAutenticaciónRespuesta a IncidentesSeguridad de APIs

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Análisis de Registros
GitHubtugcantopaloglu/openclaw-dashboard

openclaw-dashboard

🔐 Panel de monitoreo seguro y en tiempo real para agentes de OpenClaw AI. Autenticación, TOTP MFA, seguimiento de costos, feed en vivo, explorador de memoria y más.

Ver RepositorioSitio web
698120hace 5 mesesRevisado por Kitploit
encabezado

Panel de Agentes OpenClaw

Licencia: MIT Node.js OpenClaw

Un hermoso, seguro y en tiempo real panel de monitoreo para agentes OpenClaw. Sigue sesiones, monitorea el uso de API, visualiza costos, administra archivos de memoria y mantente al tanto de la salud del sistema, todo en un solo lugar.

Vista previa del panel

📸 Capturas de Pantalla

Vista GeneralSesionesCostos
Vista GeneralSesionesCostos
Límites de TasaFeed en VivoRegistros
LímitesFeed en VivoRegistros

✨ Características

  • 🤖 Gestión de Sesiones - Vea todas las sesiones de agentes con estado de actividad en tiempo real
  • 📊 Monitoreo de Límites de Tasa - Sigue el uso de las API de Claude y Gemini contra ventanas deslizantes
  • 💰 Análisis de Costos - Desglose detallado de gastos por modelo, sesión y período de tiempo
  • ⚡ Feed en Vivo - Flujo en tiempo real de mensajes de agentes en todas las sesiones
  • 🧠 Visor de Memoria - Navega y lee archivos de memoria del agente (MEMORY.md, HEARTBEAT.md, notas diarias)
  • 📁 Administrador de Archivos - Ver y editar archivos de workspace, habilidades y configuraciones con seguridad reforzada
  • 📈 Salud del Sistema - Monitoreo de CPU, RAM, disco, temperatura con sparklines
  • 🔄 Control de Servicios - Acciones rápidas para reiniciar OpenClaw, el panel u otros servicios
  • 📋 Visor de Registros - Registros del sistema en tiempo real con auto-actualización
  • ⏰ Gestión de Cron - Vea, habilite/deshabilite y ejecute manualmente trabajos cron
  • 🌐 Integración con Tailscale - Vea el estado de Tailscale, IP y pares conectados
  • 🎯 Mapa de Calor de Actividad - Visualice las horas pico de uso en los últimos 30 días
  • 🔥 Seguimiento de Rachas - Monitoree las rachas de actividad diaria
  • 🔍 Búsqueda y Filtrado de Sesiones - Filtre por estado, modelo, rango de fechas con búsqueda en vivo
  • 🎨 Tema Oscuro/Claro - Cambie entre modos oscuro y claro con preferencia persistente
  • ⌨️ Atajos de Teclado - Navegue rápidamente con teclas rápidas (1-7, Espacio, /, Esc, ?)
  • 📱 Responsivo para Móviles - Funciona en teléfonos y tabletas
  • 🔔 Notificaciones del Navegador - Reciba alertas cuando se acerquen los límites de uso
  • 📊 Vista de Línea de Tiempo - Línea de tiempo visual de la actividad de la sesión
  • 💾 Actividad de Git - Sigue los commits recientes en tus repositorios
  • 🎛️ Recolector de Uso de Claude - Obtén datos de uso reales desde la CLI de Claude Code
  • 🔷 Seguimiento de Uso de Gemini - Monitorea el uso de modelos de Google Gemini con desglose por modelo
  • 🔀 Cambio de Proveedor - Alterna entre el uso de Claude y Gemini en la tarjeta de resumen

🚀 Inicio Rápido```bash

Clone the repository

git clone https://github.com/tugcantopaloglu/openclaw-dashboard.git cd openclaw-dashboard

Set your OpenClaw workspace path (optional, auto-detects if not set)

export WORKSPACE_DIR=/path/to/your/openclaw/workspace

Start the dashboard

node server.js

root@kitploit:~
Visit `http://localhost:7000` en tu navegador. En la primera visita, verás una **pantalla de registro** donde crearás tu nombre de usuario y contraseña. Después del registro, inicia sesión con tus credenciales.

## 📦 Instalación

### Requisitos previos

- **Node.js** v18 o superior (verifica con `node --version`)
- **OpenClaw** instalado y ejecutándose
- **Systemd** (opcional, para instalación como servicio en Linux)

#### Dependencias opcionales

| Herramienta | Requerido para | Instalar |
|------|-------------|---------|
| `jq` | Página de gestión de Docker | `sudo apt install jq` |
| `tmux` | Scraper de uso de Claude CLI | `sudo apt install tmux` |
| `python3` | Analizador de uso de Claude CLI | Generalmente preinstalado |
| `docker` | Página de gestión de Docker | [docs.docker.com](https://docs.docker.com/engine/install/) |

### Instalación manual

1. **Clona el repositorio**   ```bash
   git clone https://github.com/tugcantopaloglu/openclaw-dashboard.git
   cd openclaw-dashboard
  1. Configurar entorno (opcional) ```bash export DASHBOARD_PORT=7000 export WORKSPACE_DIR=/path/to/your/workspace export OPENCLAW_DIR=$HOME/.openclaw export OPENCLAW_AGENT=main
    root@kitploit:~
  2. Iniciar el servidor ```bash node server.js
    root@kitploit:~

El servidor imprimirá: ``` 🚀 Dashboard running on http://localhost:7000 🔑 Recovery token: abc123def456...

root@kitploit:~
**Guarda el token de recuperación** — lo necesitarás si olvidas tu contraseña.

4. **Accede al panel**
Abre `http://localhost:7000` y registra tu cuenta.

### Servicio Systemd (install.sh)

Para ejecutar el panel como un servicio del sistema con inicio automático y recuperación ante fallos:```bash
sudo ./install.sh

Esto hará:

  • Crear /etc/systemd/system/agent-dashboard.service
  • Crear configuración de anulación en /etc/systemd/system/agent-dashboard.service.d/override.conf
  • Habilitar e iniciar el servicio
  • Establecer tu ruta de espacio de trabajo y generar un token de recuperación

Ver registros:```bash journalctl -u agent-dashboard -f

root@kitploit:~
### Docker```bash
# Build
docker build -t openclaw-dashboard .

# Run
docker run -d \
  --name openclaw-dashboard \
  -p 3001:3001 \
  -e WORKSPACE_DIR=/app/workspace \
  -e DASHBOARD_ALLOW_HTTP=true \
  -v ~/.openclaw:/home/node/.openclaw:ro \
  -v ~/.openclaw/workspace:/app/workspace \
  openclaw-dashboard

Para el acceso a la página de gestión de Docker, pasa el socket de Docker:```bash docker run -d
--name openclaw-dashboard
-p 3001:3001
-e WORKSPACE_DIR=/app/workspace
-e DASHBOARD_ALLOW_HTTP=true
-v ~/.openclaw:/home/node/.openclaw:ro
-v ~/.openclaw/workspace:/app/workspace
-v /var/run/docker.sock:/var/run/docker.sock:ro
--group-add $(stat -c '%g' /var/run/docker.sock)
openclaw-dashboard

root@kitploit:~
### Variables de Entorno

| Variable | Descripción | Predeterminado |
|----------|-------------|---------|
| `DASHBOARD_PORT` | Puerto del servidor | `7000` |
| `DASHBOARD_TOKEN` | Token de recuperación para restablecer contraseña | Generado automáticamente al inicio |
| `WORKSPACE_DIR` | Ruta del espacio de trabajo de OpenClaw | `$OPENCLAW_WORKSPACE` o directorio actual |
| `OPENCLAW_DIR` | Directorio de configuración de OpenClaw | `~/.openclaw` |
| `OPENCLAW_AGENT` | ID del agente a monitorear | `main` |
| `DASHBOARD_ALLOW_HTTP` | Permitir HTTP desde IPs no locales | `false` |

**Ejemplos:**```bash
# Custom port
DASHBOARD_PORT=8080 node server.js

# Custom recovery token
DASHBOARD_TOKEN=my_secret_token_12345 node server.js

# Different workspace
WORKSPACE_DIR=/mnt/data/openclaw node server.js

🔐 Autenticación

El panel utiliza autenticación por nombre de usuario y contraseña con sesiones seguras del lado del servidor.

Registro por primera vez

  1. Visite la URL del panel (ej., http://localhost:7000)
  2. Verá una pantalla de registro
  3. Elija un nombre de usuario y una contraseña
  4. Haga clic en Registrarse
  5. Inicie sesión con sus nuevas credenciales

Inicio de sesión

  • Ingrese su nombre de usuario y contraseña
  • Opcionalmente marque "Recordarme" para permanecer conectado durante 3 horas (usa localStorage)
  • Sin "Recordarme", su sesión dura solo hasta que cierra el navegador (usa sessionStorage)

Seguridad de contraseñas

  • Hash PBKDF2 — 100,000 iteraciones con SHA-512
  • Sal aleatoria — Única por contraseña
  • Sesiones del lado del servidor — Las contraseñas nunca se almacenan en el navegador, solo tokens de sesión
  • Comparaciones seguras en tiempo — Previene ataques de temporización en la verificación de contraseñas

Límite de tasa

Para prevenir ataques de fuerza bruta:

  • 5 intentos de inicio de sesión fallidos → Bloqueo suave de 15 minutos
  • 20 intentos de inicio de sesión fallidos → Bloqueo duro (requiere reinicio del servicio)
  • Los límites de tasa están en memoria y se reinician cuando el servicio se reinicia

🔑 Autenticación multifactor (MFA)

Agregue una capa adicional de seguridad con contraseñas de un solo uso basadas en tiempo (TOTP).

Habilitar MFA

  1. Inicie sesión en el panel
  2. Vaya a la página Seguridad (barra lateral)
  3. Haga clic en "Habilitar MFA"
  4. Aparece un código QR — escanéelo con su aplicación de autenticación:
    • Google Authenticator (iOS, Android)
    • Authy (iOS, Android, Escritorio)
    • Microsoft Authenticator (iOS, Android)
    • 1Password, Bitwarden, o cualquier aplicación compatible con TOTP
  5. Ingrese el código de 6 dígitos mostrado en su aplicación para verificar
  6. ¡MFA ahora está activo! 🎉

Usar MFA

Una vez habilitado, cada inicio de sesión requiere:

  1. Su nombre de usuario y contraseña (como de costumbre)
  2. Un código TOTP de 6 dígitos de su aplicación de autenticación
  • Los códigos se actualizan cada 30 segundos
  • El panel acepta códigos con tolerancia de ±1 ventana para desviación del reloj (30 segundos antes/después)

Deshabilitar MFA

  1. Vaya a la página Seguridad
  2. Haga clic en "Deshabilitar MFA"
  3. Ingrese su código TOTP de 6 dígitos actual para confirmar
  4. MFA ahora está deshabilitado

Restablecer MFA (si está bloqueado)

Si pierde el acceso a su aplicación de autenticación (teléfono perdido, aplicación desinstalada, etc.):

  1. Conéctese por SSH a su servidor
  2. Ejecute este comando para borrar el secreto de MFA: ```bash node -e "const fs=require('fs');const c=JSON.parse(fs.readFileSync('/root/clawd/data/credentials.json','utf8'));delete c.mfaSecret;fs.writeFileSync('/root/clawd/data/credentials.json',JSON.stringify(c,null,2));console.log('MFA cleared')"
    root@kitploit:~
  3. Reiniciar el panel: ```bash systemctl restart agent-dashboard
    root@kitploit:~
  4. Inicia sesión solo con tu nombre de usuario y contraseña
  5. Vuelve a habilitar la MFA con un nuevo código QR

Importante: Ajusta la ruta /root/clawd/data/credentials.json si tu espacio de trabajo está en otro lugar.

🔓 Recuperación de contraseña

¿Olvidaste tu contraseña?

Si olvidas tu contraseña:

  1. Haz clic en "¿Olvidaste tu contraseña?" en la pantalla de inicio de sesión
  2. Ingresa tu token de recuperación (consulta "Cómo encontrar tu token de recuperación" más abajo)
  3. Establece una nueva contraseña
  4. Inicia sesión con tu nueva contraseña

Cómo encontrar tu token de recuperación

El token de recuperación (DASHBOARD_TOKEN) se imprime cuando se inicia el servidor. Puedes encontrarlo en varios lugares:

Revisa los registros de inicio del servidor```bash

journalctl -u agent-dashboard | grep "Recovery token"

root@kitploit:~
Salida:```
🔑 Recovery token: 3e6b91f352418b486a9aa9d82fbbc1b1

Verificar configuración de anulación de Systemd```bash

cat /etc/systemd/system/agent-dashboard.service.d/override.conf

root@kitploit:~
Buscar:```ini
Environment=DASHBOARD_TOKEN=3e6b91f352418b486a9aa9d82fbbc1b1

Verificar Variable de Entorno

Si la configuraste manualmente:```bash echo $DASHBOARD_TOKEN

root@kitploit:~
### Cambiando tu Contraseña

Para cambiar tu contraseña mientras estás conectado:

1. Ve a la página de **Seguridad**
2. Ingresa tu **contraseña actual**
3. Ingresa tu **nueva contraseña**
4. Haz clic en **"Cambiar Contraseña"**
5. Todas las demás sesiones se invalidan (tendrás que iniciar sesión nuevamente en otros lugares)

### Restablecimiento Completo de la Cuenta (Opción Nuclear)

Si todo está bloqueado y no puedes iniciar sesión:

1. **Conéctate por SSH a tu servidor**
2. **Elimina el archivo de credenciales**:   ```bash
   rm /root/clawd/data/credentials.json
  1. Reiniciar el panel: ```bash systemctl restart agent-dashboard
    root@kitploit:~
  2. Visita el panel — aparece la pantalla de registro
  3. Crea una nueva cuenta desde cero

Advertencia: Esto elimina tu nombre de usuario, contraseña y configuración de MFA. Los archivos de memoria y los registros de auditoría no se ven afectados.

🛡️ Funciones de seguridad

El panel está construido con las mejores prácticas de seguridad:

  • Hash de contraseñas PBKDF2 — 100.000 iteraciones, SHA-512, sal aleatoria
  • Comparaciones a prueba de temporización — Previene ataques de temporización en la verificación de tokens/contraseñas
  • Sesiones del lado del servidor — Tokens de sesión almacenados en memoria, las contraseñas nunca se envían al navegador
  • Limitación de tasa — Limitador de tasa unificado para intentos de inicio de sesión (5 suave / 20 bloqueo duro)
  • Aplicación de HTTPS — HTTP bloqueado excepto desde localhost y Tailscale (100.64.0.0/10)
  • Encabezados de seguridad:
    • HSTS — Forzar HTTPS en visitas futuras
    • CSP — Política de Seguridad de Contenido (sin scripts en línea, mismo origen)
    • X-Frame-Options: DENY — Prevenir clickjacking
    • X-Content-Type-Options: nosniff — Prevenir detección de MIME
    • X-XSS-Protection: 1; mode=block — Protección XSS heredada
  • Registro de auditoría — Todos los eventos de autenticación y acciones destructivas se registran en data/audit.log
  • CORS — Solo mismo origen, no se permite comodín (*)
  • Validación de entrada:
    • Lista blanca de servicios para registros y acciones
    • Protección contra path traversal para acceso a archivos
    • Límites de tamaño de carga útil (1 MB máximo)
  • Copias de seguridad automáticas — Archivos .bak creados antes de sobrescribir archivos del espacio de trabajo

🌐 Seguridad de red

El panel está diseñado para acceso local o a través de Tailscale:

Métodos de acceso recomendados

  1. Localhost — Acceso desde la misma máquina: http://localhost:7000
  2. Tailscale — Acceso desde tu red Tailscale: http://100.x.x.x:7000
    • Tailscale proporciona cifrado TLS automático (MagicDNS + HTTPS)
    • Las IPs de Tailscale (100.64.0.0 a 100.127.255.255) están exentas de la aplicación de HTTPS
  3. Red local — Acceso desde la LAN (usa HTTPS o establece DASHBOARD_ALLOW_HTTP=true)

Aplicación de HTTPS

Por defecto, el panel bloquea el acceso HTTP desde IPs no locales. Exenciones:

  • Localhost (127.0.0.1, ::1)
  • IPs de Tailscale (100.64.0.0/10)

Para otras redes, el panel requiere HTTPS o el encabezado X-Forwarded-Proto: https (desde un proxy inverso).

Para permitir HTTP desde todas las IPs (no recomendado):```bash DASHBOARD_ALLOW_HTTP=true node server.js

root@kitploit:~
### No exponer a Internet pública

**Este panel NO está endurecido para exposición a Internet pública.** Si bien tiene autenticación y limitación de tasa, está diseñado para redes privadas. Si debe exponerlo:
- Use un proxy inverso (nginx, Caddy) con HTTPS
- Agregue lista blanca de IP
- Considere VPN (Tailscale, WireGuard) en su lugar

## 🛠️ Solución de problemas

### "Demasiados intentos fallidos"

**Problema:** Ve "Demasiados intentos fallidos de inicio de sesión. Intente nuevamente más tarde."

**Soluciones:**
- Espere **15 minutos** a que expire el bloqueo suave
- Reinicie el servicio para borrar los límites de tasa:  ```bash
  systemctl restart agent-dashboard

No se puede iniciar sesión después de cambiar la contraseña

Problema: Se cambió su contraseña pero no puede iniciar sesión.

Solución: Use el flujo "¿Olvidó su contraseña?" con su token de recuperación para establecer una nueva contraseña.

Código MFA no funciona

Problema: El código TOTP de 6 dígitos es rechazado.

Soluciones:

  • Asegúrese de que el reloj de su teléfono esté sincronizado:
    • iOS: Ajustes → General → Fecha y Hora → Establecer automáticamente
    • Android: Ajustes → Sistema → Fecha y Hora → Fecha y hora automáticas
  • Los códigos TOTP tienen una tolerancia de ±30 segundos por desviación del reloj
  • Intente ingresar el siguiente código (espere 30 segundos a que se actualice)
  • Si aún falla, restablezca MFA vía SSH (consulte la sección "Restablecimiento de MFA")

El panel no carga

Problema: El navegador muestra una página en blanco o error de conexión.

Soluciones:

  1. Verifique el estado del servicio: ```bash systemctl status agent-dashboard
    root@kitploit:~
  2. Revisar registros: ```bash journalctl -u agent-dashboard -n 50
    root@kitploit:~
  3. Verificar puerto: ```bash curl http://localhost:7000/api/auth/status
    root@kitploit:~

Debería devolver: ```json {"authenticated": false, "requiresRegistration": false}

root@kitploit:~
### Error de "HTTPS requerido"

**Problema:** El navegador muestra "Se requiere HTTPS. Acceda a través de localhost, Tailscale o habilite HTTPS."

**Soluciones:**
- Acceda a través de **localhost**: `http://localhost:7000`
- Acceda a través de **Tailscale**: `http://100.x.x.x:7000`
- Configure `DASHBOARD_ALLOW_HTTP=true` en el entorno (no recomendado):  ```bash
# Add to /etc/systemd/system/agent-dashboard.service.d/override.conf
Environment=DASHBOARD_ALLOW_HTTP=true

# Reload and restart
systemctl daemon-reload
systemctl restart agent-dashboard

Página en blanco después de la actualización

Problema: El dashboard muestra una página en blanco después de actualizar el código.

Soluciones:

  • Recarga forzada: Ctrl+Shift+R (Windows/Linux) o Cmd+Shift+R (macOS)
  • Limpiar la caché del navegador para la URL del dashboard
  • Revisar la consola del navegador (F12 → pestaña Consola) para errores de JavaScript

📡 Referencia de la API

El dashboard expone una API REST para acceso programático. Todos los endpoints requieren autenticación mediante el encabezado Authorization: Bearer <sessionToken>.

Endpoints sin autenticación

  • GET /api/auth/status — Verificar estado de autenticación
  • POST /api/auth/login — Iniciar sesión con usuario/contraseña (+ TOTP si MFA está habilitado)
  • POST /api/auth/register — Registrar una nueva cuenta (solo si no existen credenciales)
  • POST /api/auth/reset-password — Restablecer contraseña con token de recuperación

Endpoints autenticados

Todos los demás endpoints requieren autenticación:

  • GET /api/config — Configuración del dashboard
  • GET /api/sessions — Listar todas las sesiones de agentes
  • GET /api/usage — Datos de uso de ventana móvil de 5 horas
  • GET /api/costs — Datos de gasto por día, modelo y sesión
  • GET /api/system — Métricas de salud del sistema
  • GET /api/memory-files — Listar archivos de memoria
  • GET /api/memory-file?path=<path> — Leer un archivo de memoria
  • GET /api/key-files — Listar archivos del workspace (skills, configs)
  • GET /api/key-file?path=<name> — Leer un archivo del workspace
  • POST /api/key-file — Escribir en un archivo del workspace (con respaldo)
  • GET /api/crons — Listar trabajos cron
  • POST /api/cron/<id>/toggle — Habilitar/deshabilitar un trabajo cron

Para ejemplos detallados de solicitud/respuesta, consulta la versión anterior de este README o explora la API en la pestaña Red del navegador.

📂 Archivos de datos

El dashboard almacena datos en tu directorio de workspace:

Estructura del archivo de credenciales:```json { "username": "admin", "passwordHash": "pbkdf2_sha512$100000$...", "salt": "...", "mfaSecret": "BASE32SECRET..." // Only if MFA enabled }

root@kitploit:~
## 🔗 Integración con OpenClaw

El panel detecta automáticamente:
- **Sesiones** de `$OPENCLAW_DIR/agents/$AGENT_ID/sessions/`
- **Tareas cron** de `$OPENCLAW_DIR/cron/jobs.json`
- **Archivos de memoria** de `$WORKSPACE_DIR/MEMORY.md`, `HEARTBEAT.md` y `memory/*.md`
- **Repositorios Git** de `$WORKSPACE_DIR/projects/*/`
- **Datos de salud** guardados en `$WORKSPACE_DIR/data/health-history.json`

### Archivos Requeridos

El panel funciona mejor cuando estos archivos existen:
- `$WORKSPACE_DIR/MEMORY.md` - Memoria a largo plazo del agente
- `$WORKSPACE_DIR/HEARTBEAT.md` - Lista de tareas de heartbeat
- `$WORKSPACE_DIR/memory/YYYY-MM-DD.md` - Notas de memoria diarias
- `$WORKSPACE_DIR/scripts/scrape-claude-usage.sh` - Scraper de uso de Claude
- `$WORKSPACE_DIR/scripts/parse-claude-usage.py` - Analizador de uso de Claude
- `$WORKSPACE_DIR/scripts/scrape-gemini-usage.sh` - Scraper de uso de Gemini
- `$WORKSPACE_DIR/scripts/parse-gemini-usage.py` - Analizador de uso de Gemini

## ⌨️ Atajos de Teclado

| Tecla | Acción |
|-------|--------|
| `1` | Cambiar a Vista General |
| `2` | Cambiar a Sesiones |
| `3` | Cambiar a Costos |
| `4` | Cambiar a Límites de Tasa |
| `5` | Cambiar a Memoria |
| `6` | Cambiar a Archivos |
| `7` | Cambiar a Fuente en Vivo |
| `8` | Cambiar a Registros |
| `9` | Cambiar a Seguridad |
| `Espacio` | Pausar/Reanudar Fuente (cuando esté en la página de Fuente en Vivo) |
| `/` | Enfocar cuadro de búsqueda |
| `Esc` | Cerrar modales y superposiciones |
| `?` | Mostrar ayuda de atajos de teclado |

## 🤝 Contribuciones

¡Las contribuciones son bienvenidas! Por favor, siga estas pautas:

1. **Haz un fork** del repositorio
2. **Crea** una rama de funcionalidad (`git checkout -b feature/amazing-feature`)
3. **Haz commit** de tus cambios (`git commit -m 'Añadir funcionalidad increíble'`)
4. **Sube** los cambios a la rama (`git push origin feature/amazing-feature`)
5. **Abre** una Pull Request

### Configuración de Desarrollo```bash
git clone https://github.com/tugcantopaloglu/openclaw-dashboard.git
cd openclaw-dashboard
export WORKSPACE_DIR=/path/to/test/workspace
node server.js

El panel no tiene paso de compilación — edita server.js o index.html y recarga.

Estilo de Código

  • Sin comentarios en el código (autodocumentado)
  • Nombres de funciones breves y directos

📄 Licencia

Licencia MIT - consulta el archivo LICENSE para más detalles.

🙏 Agradecimientos

  • Construido con Claude Code
  • Construido para OpenClaw
  • Inspirado en paneles modernos (Grafana, Vercel, Railway)
  • Fuente: Inter y JetBrains Mono

📞 Soporte

  • Problemas: GitHub Issues
  • Twitter: @tugcantopaloglu

Hecho con ✨ por Tuğcan Topaloğlu

Descargar herramienta
  • 📊 Selector por Modelo - Elige qué modelo/ventana mostrar (Opus, Sonnet, Pro, Flash, etc.)
  • 🔄 Auto-Actualización - Actualizaciones de datos en vivo cada 5 segundos
  • 🌟 Estadísticas de por Vida - Total de tokens, mensajes, costo desde la primera sesión
  • 📈 Historial de Salud - Sparklines de CPU, RAM, temperatura y uso de disco de 24 horas
  • 🎯 Acciones Rápidas - Mantenimiento del sistema con un clic (actualizaciones, limpieza, reinicios)
  • 🍎 Compatible con macOS - Soporte completo para estadísticas del sistema macOS, servicios e informes de memoria
  • 🛡️ Panel de Seguridad del Sistema - Reglas UFW, puertos abiertos, fail2ban, registros SSH, auditoría de seguridad (requiere reautenticación)
  • ⚙️ Editor de Configuración - Edite la configuración de OpenClaw con validación JSON, copia de seguridad automática y reinicio de gateway (requiere reautenticación)
  • 🐳 Gestión de Docker - Vea contenedores, imágenes, uso del sistema; inicie/detenga/reinicie contenedores; elimine recursos no utilizados
  • 🔔 Centro de Notificaciones - Fuente de eventos de registro de auditoría con contador de no leídos (inicio de sesión, cambios de configuración, eventos de seguridad)
  • 🔐 Autenticación por Usuario/Contraseña - Registro seguro con hash de contraseña PBKDF2
  • 🔑 MFA TOTP - Autenticación de dos factores opcional (compatible con Google Authenticator)
  • 💾 Recordarme - Inicio de sesión solo para la sesión o persistente de 3 horas
  • 🛡️ Seguridad Reforzada - HSTS, CSP, limitación de tasa, comparaciones a prueba de tiempo, registro de auditoría
  • 📦 Dependencias Mínimas - Node.js puro, sin base de datos ni paquetes npm requeridos. Opcional: jq (página Docker), tmux + python3 (recolector de uso de Claude CLI), docker (gestión Docker)
  • POST /api/cron/<id>/run — Ejecutar manualmente un trabajo cron
  • GET /api/logs?service=<service>&lines=<N> — Obtener registros del sistema
  • POST /api/action/<action> — Ejecutar acciones rápidas (restart-openclaw, restart-dashboard, etc.)
  • POST /api/claude-usage-scrape — Disparar extracción de uso de Claude
  • GET /api/claude-usage — Obtener último uso extraído de Claude
  • POST /api/gemini-usage-scrape — Disparar extracción de uso de Gemini
  • GET /api/gemini-usage — Obtener último uso extraído de Gemini
  • GET /api/live — Flujo de eventos enviados por el servidor (Server-Sent Events) de mensajes en tiempo real
  • GET /api/notifications?limit=<N> — Eventos del registro de auditoría para el centro de notificaciones
  • POST /api/reauth — Re-autenticar para páginas sensibles (Seguridad, Configuración)
  • GET /api/openclaw-config — Leer archivo de configuración de OpenClaw
  • PUT /api/openclaw-config — Guardar configuración con respaldo automático y reinicio del gateway
  • GET /api/sys-security — Información de seguridad del sistema (UFW, puertos, fail2ban, registros SSH)
  • GET /api/docker — Listar contenedores Docker, imágenes y uso del sistema
  • POST /api/docker/action — Acciones de Docker (iniciar/detener/reiniciar contenedor, limpiar)
  • GET /api/services — Listar servicios systemd
  • POST /api/services/action — Acciones de servicio (iniciar/detener/reiniciar, solo los permitidos)
  • ArchivoPropósito
    data/credentials.jsonNombre de usuario + contraseña hasheada + secreto MFA
    data/audit.logRegistro de auditoría de seguridad (rotación automática a 10MB)
    data/health-history.jsonHistorial de CPU/RAM/Temp/Disco para sparklines
    data/claude-usage.jsonÚltimos datos de uso extraídos de Claude
    data/gemini-usage.jsonÚltimos datos de uso extraídos de Gemini