🚀 Dashboard & Remote Monitoring System for Docker Containers
kuNNA es un orquestador de servicios Docker con capacidad de monitoreo remoto mediante agentes SSH. Gestiona contenedores locales, en VPN y en la nube desde una interfaz unificada con visualización en tiempo real.
- 🐳 Gestión de Flota Docker: Control centralizado de múltiples servidores
- 🔄 Tiempo Real: Monitoreo y actualizaciones en vivo vía WebSocket
- 🤖 Auto-Discovery: Detección automática de contenedores Docker
- 🌐 Multi-Cloud: Soporte para infraestructura local, VPN y cloud
- 📊 Visualización SCADA: Topología interactiva de servicios
- 🔐 Despliegue SSH: Deploy automatizado de agentes remotos
- 🛣️ Ruteo Inteligente: Soporte nativo para VPN/WireGuard
cd /home/elisaul77/Documentos/Docker/kunna
docker-compose up -d- Frontend (Dashboard): http://localhost:3000
- Backend (API): http://localhost:8000
- Documentación API: http://localhost:8000/docs
- Interfaz moderna con diseño tipo galería
- Búsqueda en tiempo real de servicios
- Filtrado por categorías dinámico
- Tarjetas personalizables con iconos, colores y categorías
- Responsive - funciona en desktop y móvil
- Animaciones suaves para mejor UX
- Topología interactiva de servicios y dependencias
- Monitoreo de tráfico en tiempo real
- Estado visual de contenedores (Running, Stopped, Error)
- Agrupación lógica por aplicaciones
- FastAPI - API moderna y rápida
- Documentación automática con Swagger/OpenAPI
- CRUD completo para gestión de servicios
- Persistencia de datos en JSON
- Filtros avanzados por categoría y estado
- CORS habilitado para desarrollo
- Despliegue SSH automático desde la interfaz
- Soporte para VPN/WireGuard con ruteo persistente
- Monitoreo en tiempo real vía WebSockets
- Compatibilidad Multi-Cloud (GCP, AWS, On-premise)
- Detección automática de IPs locales y de VPN
- Arquitectura y Funcionamiento
- Guía de Despliegue Remoto
- Detalle Técnico SSH y Red
- Guía de la API (Swagger)
curl http://localhost:8000/api/servicescurl http://localhost:8000/api/services/1curl -X POST http://localhost:8000/api/services \
-H "Content-Type: application/json" \
-d '{
"name": "PostgreSQL",
"description": "Base de datos PostgreSQL",
"url": "http://localhost:5432",
"icon": "🐘",
"category": "Databases",
"color": "#336791"
}'curl -X PUT http://localhost:8000/api/services/1 \
-H "Content-Type: application/json" \
-d '{
"name": "PostgreSQL Updated",
"description": "Base de datos PostgreSQL actualizada",
"url": "http://localhost:5432",
"icon": "🐘",
"category": "Databases",
"color": "#336791",
"isActive": true
}'curl -X DELETE http://localhost:8000/api/services/1curl http://localhost:8000/api/services?category=ML%20%26%20AIcurl http://localhost:8000/api/categories- Click en "➕ Agregar Servicio"
- Completa el formulario:
- Nombre: Nombre del servicio
- Descripción: Breve descripción
- URL: URL completa con protocolo (http/https)
- Icono: Emoji que representa el servicio
- Categoría: Categoría del servicio
- Color: Color de acento (hex)
- Click en "Guardar"
{
"name": "Jupyter Lab",
"description": "Entorno de desarrollo para Data Science",
"url": "http://localhost:8888",
"icon": "📊",
"category": "Data Science",
"color": "#F37626"
}{
"name": "Grafana",
"description": "Monitoreo y visualización de métricas",
"url": "http://localhost:3001",
"icon": "📈",
"category": "Monitoring",
"color": "#F46800"
}{
"name": "Redis",
"description": "Base de datos en memoria",
"url": "http://localhost:6379",
"icon": "🔴",
"category": "Databases",
"color": "#DC382D"
}# Todos los servicios
docker-compose logs -f
# Solo backend
docker-compose logs -f backend
# Solo frontend
docker-compose logs -f frontend# Reiniciar todo
docker-compose restart
# Reiniciar solo backend
docker-compose restart backenddocker-compose downdocker-compose up -d --buildkunna/
├── backend/
│ ├── app.py # API FastAPI
│ ├── requirements.txt # Dependencias Python
│ └── Dockerfile
├── frontend/
│ ├── index.html # Dashboard UI
│ ├── nginx.conf # Configuración Nginx
│ └── Dockerfile
├── scripts/ # Scripts y herramientas
│ ├── utilities/ # Scripts de utilidad
│ ├── tests/ # Scripts de pruebas
│ ├── examples/ # Ejemplos de uso
│ └── tools/ # Librerías y herramientas
├── docs/ # Documentación técnica
├── data/
│ └── services.json # Base de datos (auto-generada)
├── docker-compose.yml
└── README.md
Por defecto, kuNNA está configurado para desarrollo local. Para producción:
- Cambiar CORS: Modificar
allow_originsenbackend/app.py - HTTPS: Configurar certificados SSL
- Autenticación: Agregar sistema de autenticación si es necesario
- Verifica que ambos contenedores estén corriendo:
docker-compose ps - Revisa los logs:
docker-compose logs backend
- Verifica permisos en la carpeta
data/ - Asegúrate que el volumen esté montado correctamente
Si algún puerto está ocupado, modifica en docker-compose.yml:
ports:
- "3001:80" # Cambiar 3000 por otro puertoPara información detallada sobre el proyecto, consulta la documentación en la carpeta docs/:
- Architecture & Design - Documentación Definitiva con diagramas de funcionamiento.
- SSH Deployment Detail - Detalle técnico de IPs, puertos y ruteo remoto.
- API Documentation - Documentación completa de la API REST
- Integration Guide - Guías de integración
- Traffic Monitoring - Sistema de monitoreo de tráfico
- Remote Agents - Arquitectura de agentes remotos
- Swagger Guide - Cómo usar Swagger UI
Ver el índice completo de documentación para más detalles.
El proyecto incluye varios scripts útiles organizados en la carpeta scripts/:
- Utilidades - Scripts de automatización (
add-service.sh) - Pruebas - Scripts de testing (
test_traffic.py) - Ejemplos - Demos y ejemplos de uso
- Herramientas - Librerías como
kunna_tracer.py
Ver la documentación de scripts para detalles completos.
¡Las contribuciones son bienvenidas! Por favor lee nuestra Guía de Contribución para conocer cómo contribuir al proyecto.
- 🐛 Reportar bugs
- 💡 Proponer nuevas características
- 📝 Mejorar la documentación
- 🔧 Enviar Pull Requests
- ⭐ Dar una estrella al proyecto
Si kuNNA te ha sido útil, considera apoyar su desarrollo:
Ver más opciones de patrocinio en FUNDING.md
- 🌟 Bronze ($5/mes): Reconocimiento en README + Badge de patrocinador
- 🥈 Silver ($15/mes): Todo lo anterior + Soporte prioritario
- 🥇 Gold ($50/mes): Todo lo anterior + Mención en lanzamientos + Logo en sitio web
- 💎 Platinum ($100/mes): Todo lo anterior + Consultoría directa + Características personalizadas
Este proyecto está bajo la Licencia MIT. Ver el archivo LICENSE para más detalles.
- Sistema de autenticación
- Temas claro/oscuro
- Exportar/Importar configuración
- Health checks automáticos
- Notificaciones cuando un servicio cae
- Organización por grupos/proyectos
- Shortcuts de teclado
Eli Saul Florez Perez
- GitHub: @elisaul77
- Email: wcwxtctco@mozmail.com
Gracias a todos los contribuidores que han hecho posible este proyecto. Si kuNNA te ha sido útil, considera:
- ⭐ Dar una estrella al proyecto
- 🐛 Reportar bugs o sugerir características
- 💖 Convertirte en patrocinador
- 📢 Compartir el proyecto con otros
