Sobre el proyecto

Knot es una solución de gestión de código abierto para entornos de desarrollo en la nube, diseñada para ejecutarse dentro de un clúster de Nomad o en máquinas locales. Combina una interfaz web basada en navegador con herramientas de línea de comandos para que los equipos puedan implementar y acceder a entornos de desarrollo sin que cada desarrollador mantenga su propia configuración. Capacidades clave descritas en el README: - Interfaz de gestión basada en web para crear y gestionar entornos. - Acceso desde el navegador a Visual Studio Code y Code Server, además de un terminal en el navegador. - Herramientas de línea de comandos para simplificar el acceso a contenedores. - Gestión de usuarios y permisos, grupos para controlar qué plantillas pueden ver los usuarios y roles personalizados. - Plantillas de entorno para espacios de desarrollo consistentes y repetibles. - Integración con Nomad para la gestión de clústeres y soporte para contenedores locales mediante Docker o Podman. - Máquinas virtuales KVM: los espacios pueden ejecutarse como VMs completas en nodos compatibles con KVM, iniciadas desde imágenes de nube, con redes en puente (IP estática) o NAT. - Cuotas que limitan el uso de recursos y el número de espacios por usuario. - URLs de desarrollo generadas automáticamente para los espacios. - Soporte para servidores VNC basados en web como KasmVNC. - Servidores remotos para que los entornos puedan implementarse cerca de los desarrolladores mientras las plantillas y los usuarios se gestionan centralmente, evitando un punto único de fallo. - Compartir espacios con otros usuarios, otorgando acceso SSH y de terminal. - Registro compatible con syslog con visualización en ventana. - Túneles para exponer de forma segura los entornos a internet cuando sea necesario. - Servicios locales para conectarse de forma segura a servicios en la máquina local desde un espacio. - Una API para la integración con otros sistemas, con versionado mediante el encabezado de solicitud X-Knot-Api-Version; los cambios no disruptivos se aplican a todas las versiones, mientras que los cambios disruptivos solo aparecen en la última versión. Notas de seguridad: Knot está destinado a redes privadas de confianza en lugar de exposición directa a internet abierta, con desarrolladores conectándose mediante VPN o similar. Para implementaciones en múltiples ubicaciones, una red en malla puede ser adecuada. Cuando los túneles están habilitados, el puerto del túnel es separado de las interfaces web y de agente, y el tráfico público debe dirigirse solo a la interfaz del túnel. Se recomiendan contraseñas de un solo uso basadas en tiempo (TOTP) si la interfaz web se expone a internet, y funcionan con aplicaciones de autenticación comunes. La documentación y una guía de inicio rápido están disponibles en getknot.dev. Los iconos provienen de Heroicons, Flowbite, dashboard-icons y devicon, utilizados solo para identificación. El proyecto se publica bajo la licencia Apache 2.0.