Sobre o projeto

Knot é uma solução de gerenciamento de código aberto para ambientes de desenvolvimento em nuvem, projetada para operar dentro de um cluster Nomad ou em máquinas locais. Combina uma interface web baseada em navegador com ferramentas de linha de comando, permitindo que equipes implantem e acessem ambientes de desenvolvimento sem que cada desenvolvedor precise manter sua própria configuração. Capacidades principais descritas no README: - Interface de gerenciamento baseada na web para criar e gerenciar ambientes. - Acesso pelo navegador ao Visual Studio Code e Code Server, além de um terminal no navegador. - Ferramentas de linha de comando para simplificar o acesso a contêineres. - Gerenciamento de usuários e permissões, grupos para controlar quais modelos os usuários podem ver, e papéis personalizados. - Modelos de ambiente para espaços de desenvolvimento consistentes e repetíveis. - Integração com Nomad para gerenciamento de cluster, e suporte a contêineres locais via Docker ou Podman. - Máquinas virtuais KVM: espaços podem ser executados como VMs completas em nós com suporte a KVM, inicializados a partir de imagens em nuvem, com rede em ponte (IP estático) ou NAT. - Cotas que limitam o uso de recursos e o número de espaços por usuário. - URLs de desenvolvimento geradas automaticamente para espaços. - Suporte a servidores VNC baseados na web, como KasmVNC. - Servidores remotos para que ambientes possam ser implantados perto dos desenvolvedores, enquanto modelos e usuários são gerenciados centralmente, evitando um ponto único de falha. - Compartilhamento de espaços com outros usuários, concedendo acesso SSH e terminal. - Logs compatíveis com syslog, com exibição na janela. - Túnel para expor ambientes à internet de forma segura quando necessário. - Serviços locais para conectar-se com segurança a serviços na máquina local a partir de um espaço. - Uma API para integração com outros sistemas, com versionamento via cabeçalho de solicitação X-Knot-Api-Version; alterações sem quebra se aplicam a todas as versões, enquanto alterações que quebram aparecem somente na versão mais recente. Notas de segurança: Knot é destinado a redes privadas confiáveis, e não à exposição direta à internet aberta; os desenvolvedores devem conectar-se via VPN ou similar. Para implantações em vários locais, uma rede mesh pode ser adequada. Quando o túnel está ativado, a porta do túnel é separada das interfaces web e de agente, e o tráfego público deve ser direcionado somente à interface do túnel. Senhas de uso único baseadas em tempo (TOTP) são recomendadas se a interface web for exposta à internet, e funcionam com aplicativos autenticadores comuns. Documentação e um guia de início rápido estão disponíveis em getknot.dev. Os ícones são originados de Heroicons, Flowbite, dashboard-icons e devicon, usados apenas para identificação. O projeto é licenciado sob a Apache 2.0.