English | Español
VersaDumps Visualizer es una aplicación de escritorio multiplataforma para visualizar y depurar datos en tiempo real, diseñada principalmente para aplicaciones backend (como PHP, Node.js, Python, etc.). La aplicación inicia un servidor HTTP local que escucha payloads JSON entrantes y los muestra en una interfaz interactiva, además de monitorear archivos de log del sistema en tiempo real.
- 🌓 Temas claro y oscuro con soporte persistente
- 🌍 Internacionalización (i18n): Soporte multiidioma (Español e Inglés)
- 👤 Perfiles múltiples: Gestiona diferentes configuraciones y cambia entre ellas fácilmente
- 🔄 Visualización en tiempo real de dumps HTTP con controles de ordenación (más recientes/más antiguos primero)
- 📊 Exploración interactiva de datos JSON anidados con árbol expandible
- 📱 Diseño responsive con enfoque mobile-first
- 📁 Monitoreo de carpetas en tiempo real con fsnotify
- 🔍 Filtrado avanzado:
- Por extensión de archivo (_.log, _.txt, etc.)
- Por nivel de log (error, warning, info, debug, success)
- Por contenido de texto en tiempo real
- 📝 Soporte de formatos: JSON y texto plano
- 🔄 Detección automática de rotación de logs
- 🎨 Resaltado de sintaxis para archivos JSON con colores diferenciados
- 📊 Contador de líneas totales y filtradas
- 🗑️ Gestión completa: Limpiar logs, abrir carpetas, editar configuración
- 🔲 Vista dividida redimensionable:
- Panel superior: Dumps HTTP (60% altura por defecto)
- Panel inferior: Visor de archivos de log (40% altura por defecto)
- Separador ajustable con límites 30%-70%
- 🗑️ Gestión de logs: Borrar todos los logs o eliminarlos individualmente
- 📊 Indicador de estado del servidor (online/offline/checking)
- 🔔 Badge en barra de tareas (Windows) mostrando el número de mensajes recibidos
- 🔍 Título de ventana dinámico que muestra el contador de mensajes
- 💾 Posición de ventana guardada (restaura tamaño y posición al reiniciar)
- ✨ Actualizaciones automáticas desde GitHub Releases
- 📥 Descarga e instalación de nuevas versiones
- 🔔 Notificaciones de actualizaciones disponibles
- 📝 Changelog visible en la aplicación
- Go 1.21+
- Wails v2 - Framework de aplicaciones de escritorio
- fsnotify - Monitoreo de sistema de archivos
- yaml.v3 - Manejo de configuración
- Vue.js 3 - Framework JavaScript progresivo
- Tailwind CSS - Framework de CSS utility-first
- Vite - Herramienta de build ultrarrápida
- PowerShell - Scripts de automatización y setup
- NSIS - Instalador para Windows
- GitHub Actions - CI/CD automatizado
/versaDumps
├── .github/
│ └── workflows/ # CI/CD pipelines
├── app/
│ ├── build/
│ │ ├── bin/
│ │ │ ├── VersaDumps.exe # Ejecutable final
│ │ │ └── config.yml # Configuración en tiempo de ejecución
│ │ └── appicon.png # Icono de la aplicación
│ ├── cmd/ # Comandos CLI
│ ├── frontend/
│ │ ├── src/
│ │ │ ├── assets/ # Recursos estáticos
│ │ │ ├── components/ # Componentes Vue
│ │ │ │ ├── ConfigModal.vue # Modal de configuración
│ │ │ │ ├── Icon.vue # Sistema de iconos
│ │ │ │ ├── JsonTreeView.vue # Visualizador JSON
│ │ │ │ ├── JsonTreeViewNode.vue # Nodos del árbol JSON
│ │ │ │ ├── LineHr.vue # Separador horizontal
│ │ │ │ ├── LogFileViewer.vue # Visor de archivos de log
│ │ │ │ ├── LogFoldersManager.vue # Gestor de carpetas de log
│ │ │ │ ├── LogItem.vue # Item individual de log
│ │ │ │ └── UpdateNotification.vue # Notificación de actualización
│ │ │ ├── i18n/ # Internacionalización
│ │ │ │ ├── en.js # Traducciones en inglés
│ │ │ │ ├── es.js # Traducciones en español
│ │ │ │ └── index.js # Configuración i18n
│ │ │ ├── App.vue # Componente principal
│ │ │ ├── index.css # Estilos globales
│ │ │ └── main.js # Punto de entrada
│ │ ├── index.html
│ │ ├── package.json
│ │ ├── tailwind.config.js
│ │ └── vite.config.js
│ ├── tools/ # Herramientas auxiliares
│ ├── app.go # Lógica principal de la app
│ ├── badge_windows.go # Badge de barra de tareas (Windows)
│ ├── badge_darwin.go # Badge para macOS
│ ├── badge_unix.go # Badge para Linux/Unix
│ ├── config.go # Gestión de configuración
│ ├── config.yml # Archivo de configuración
│ ├── logwatcher.go # Sistema de monitoreo de logs
│ ├── main.go # Punto de entrada
│ ├── server.go # Servidor HTTP
│ ├── updater.go # Sistema de actualizaciones
│ ├── updater_windows.go # Instalador de actualizaciones (Windows)
│ ├── updater_unix.go # Instalador de actualizaciones (Unix)
│ ├── go.mod
│ └── wails.json # Configuración de Wails
├── art/ # Recursos de arte
├── phpBack/ # Ejemplo de integración con PHP
│ └── composer.json # versadumps-php package
├── test-logs/ # Logs de prueba
├── CHANGELOG.md # Historial de cambios
├── ICONS.md # Documentación de iconos
├── README.md # Este archivo
├── RELEASE.md # Notas de release
├── TODO.md # Lista de tareas
├── create-installer.ps1 # Script para crear instalador
├── release.ps1 # Script de release
├── setup-icons.ps1 # Setup de iconos (Windows)
├── setup-icons.sh # Setup de iconos (Unix/macOS)
└── update-version.ps1 # Script de actualización de versión
La aplicación espera un payload JSON con la siguiente estructura:
{
"frame": {
"file": "/ruta/al/archivo.php",
"line": 123,
"function": "miFuncion"
},
"context": "{\"clave\":\"valor\"}"
}frame: Objeto que contiene la ubicación del código fuentefile: Ruta del archivoline: Número de líneafunction: Nombre de la función
context: Una cadena que contiene un objeto JSON para inspección detallada
active_profile: Default
profiles:
- name: Default
server: localhost
port: 9191
theme: dark
language: es
show_types: true
log_folders:
- path: C:\logs\app
extensions:
- "*.log"
- "*.txt"
filters:
- error
- warning
enabled: true
format: text
- path: C:\logs\json
extensions:
- "*.json"
filters: []
enabled: true
format: json
- name: Production
server: 0.0.0.0
port: 8080
theme: light
language: en
show_types: false
log_folders: []
window_position:
x: 100
y: 100
width: 1200
height: 800-
active_profile: Nombre del perfil activo -
profiles: Array de perfiles de configuraciónname: Nombre del perfilserver: Dirección del servidor HTTP (localhost, 0.0.0.0, etc.)port: Puerto en el que escuchará el servidortheme: Tema de la interfaz (darkolight)language: Idioma de la interfaz (esoen)show_types: Mostrar tipos de datos en el visor JSONlog_folders: Carpetas de log a monitorearpath: Ruta absoluta de la carpetaextensions: Extensiones de archivo a monitorear (soporta wildcards)filters: Filtros por nivel de log (vacío = todos)enabled: Si el monitoreo está activoformat: Formato del log (textojson)
-
window_position: Posición y tamaño de la ventana (opcional)x,y: Posición en pantallawidth,height: Dimensiones de la ventana
- Go 1.21 o superior
- Node.js 16 o superior
- Wails CLI v2
go install github.com/wailsapp/wails/v2/cmd/wails@latest
-
Navega al directorio
appcd app -
Ejecuta Wails en modo desarrollo
wails dev
- Proporciona recarga en caliente
- Ideal para desarrollo activo
- Devtools del navegador disponibles
-
Navega al directorio
appcd app -
Construye la aplicación
wails build
- Crea el ejecutable final y autónomo en
app/build/bin
- Crea el ejecutable final y autónomo en
-
Para crear el instalador de Windows (desde la raíz del proyecto)
.\create-installer.ps1
- Coloca
config.ymlen el mismo directorio que el ejecutable (se crea automáticamente con valores por defecto si no existe) - Ejecuta el archivo ejecutable
VersaDumps.exe(Windows) oVersaDumps(Linux/macOS)
Para personalizar el icono de la aplicación:
- Reemplaza
app/build/appicon.pngcon tu icono (recomendado: 256x256px PNG) - Ejecuta el script de configuración:
# En Windows .\setup-icons.ps1
# En Unix/macOS/Linux ./setup-icons.sh - Recompila la aplicación con
wails build
Para más detalles, consulta ICONS.md.
Puedes gestionar perfiles directamente desde la interfaz:
- Haz clic en el icono de configuración (⚙️)
- Selecciona el perfil que deseas usar o crea uno nuevo
- Los cambios se guardan automáticamente en
config.yml
Para configurar carpetas de log:
- Abre el panel de configuración
- Ve a la sección "Log Folders"
- Agrega carpetas con sus respectivas configuraciones
- Los logs se mostrarán automáticamente en el panel inferior
VersaDumps incluye un paquete PHP para facilitar la integración:
composer require versadumps-php/versadumps-php<?php
require_once 'vendor/autoload.php';
use VersaDumps\VersaDumps;
// Configurar el servidor (opcional, por defecto: localhost:9191)
VersaDumps::config([
'host' => 'localhost',
'port' => 9191
]);
// Hacer un dump de datos
$data = ['nombre' => 'John', 'edad' => 30];
VersaDumps::dump($data);
// Dump con metadata adicional
VersaDumps::dump($data, 'Usuario procesado');Para más información, consulta el repositorio versadumps-php.
- App.vue: Componente raíz que gestiona el estado global de la aplicación
- LogItem.vue: Muestra una entrada de dump HTTP individual
- JsonTreeView.vue y JsonTreeViewNode.vue: Renderizan el contexto JSON explorable
- LogFileViewer.vue: Visualizador de archivos de log en tiempo real
- LogFoldersManager.vue: Gestor CRUD de carpetas de log
- ConfigModal.vue: Modal de configuración y gestión de perfiles
- UpdateNotification.vue: Notificación de actualizaciones disponibles
La aplicación incluye un sistema de iconos personalizado:
gear- Configuracióntrash- Eliminarsun/moon- Cambio de temasort- Ordenarfile- Archivosedit- Editar- Y más...
La aplicación verifica automáticamente actualizaciones desde GitHub:
- Comprobación en el inicio de la aplicación
- Notificación visual cuando hay una actualización disponible
- Descarga e instalación con un solo clic
- Changelog visible antes de actualizar
- Soporte multiplataforma (Windows, macOS, Linux)
Versión actual: v3.1.0
Idiomas soportados:
- 🇪🇸 Español (es)
- 🇬🇧 Inglés (en)
Puedes cambiar el idioma desde la configuración. Las traducciones se cargan dinámicamente y se guardan en el perfil activo.
- Tema Oscuro (por defecto): Ideal para entornos de desarrollo
- Tema Claro: Para preferencias visuales diferentes
El tema se guarda por perfil y persiste entre sesiones.
La aplicación se distribuye en dos formatos:
-
Instalador NSIS (Windows):
versaDumps-installer-{version}.exe- Instalación guiada
- Integración con el menú de inicio
- Desinstalador incluido
-
Ejecutable portable:
VersaDumps.exe/VersaDumps- Sin instalación necesaria
- Incluye todas las dependencias
- Multiplataforma
main.go: Punto de entrada, inicialización de Wailsapp.go: Lógica de aplicación, gestión de estadoserver.go: Servidor HTTP para recibir dumpslogwatcher.go: Sistema de monitoreo de archivos de logconfig.go: Gestión de configuración y perfilesupdater.go: Sistema de actualizaciones automáticasbadge_*.go: Implementación de badges por plataforma
App.vue: Aplicación principal, gestión de estado globalcomponents/: Componentes reutilizables de Vuei18n/: Sistema de traduccionesassets/: Recursos estáticos (imágenes, fuentes, etc.)
# Actualizar versión
.\update-version.ps1 -NewVersion "3.0.2"
# Crear release
.\release.ps1
# Crear instalador
.\create-installer.ps1- Verifica que el puerto configurado no esté en uso
- Comprueba el archivo
config.yml - Revisa los logs de la aplicación
- Verifica que la carpeta de logs existe
- Comprueba los permisos de lectura
- Asegúrate de que las extensiones coinciden con tus archivos
- Verifica que el monitoreo esté habilitado en la configuración
- Requiere Windows 7 o superior
- Verifica que la aplicación tenga permisos adecuados
Las contribuciones son bienvenidas. Por favor:
- Fork el proyecto
- Crea una rama para tu feature (
git checkout -b feature/AmazingFeature) - Commit tus cambios (
git commit -m 'Add some AmazingFeature') - Push a la rama (
git push origin feature/AmazingFeature) - Abre un Pull Request
Por favor, asegúrate de:
- Seguir las mejores prácticas de código
- Añadir pruebas para nuevas funcionalidades
- Actualizar la documentación correspondiente
- Mantener la compatibilidad con versiones anteriores cuando sea posible
Este proyecto está licenciado bajo la Licencia MIT.
kriollo
- Email: kriollone@gmail.com
- GitHub: @kriollo
Hecho con ❤️ por kriollo




