Об этом проекте

Knot — это решение с открытым исходным кодом для управления облачными средами разработки, предназначенное для работы внутри кластера Nomad или на локальных машинах. Оно сочетает веб-интерфейс на основе браузера с инструментами командной строки, что позволяет командам развертывать и получать доступ к средам разработки без необходимости поддержки собственной конфигурации каждым разработчиком. Ключевые возможности, описанные в README: - Веб-интерфейс управления для создания сред и управления ими. - Доступ через браузер к Visual Studio Code и Code Server, а также встроенный терминал в браузере. - Инструменты командной строки для упрощения доступа к контейнерам. - Управление пользователями и правами, группы для контроля видимости шаблонов пользователям, а также настраиваемые роли. - Шаблоны сред для создания согласованных и воспроизводимых пространств разработки. - Интеграция с Nomad для управления кластером и поддержка локальных контейнеров через Docker или Podman. - KVM-виртуальные машины: пространства могут работать как полноценные виртуальные машины на узлах с поддержкой KVM, загружаемые из облачных образов, с мостовой (статический IP) или NAT-сетью. - Квоты, ограничивающие использование ресурсов и количество пространств на пользователя. - Автоматически генерируемые URL-адреса разработки для пространств. - Поддержка веб-серверов VNC, таких как KasmVNC. - Удаленные серверы, позволяющие развертывать среды рядом с разработчиками, при этом шаблоны и пользователи управляются централизованно, что позволяет избежать единой точки отказа. - Совместное использование пространств с другими пользователями, предоставляющее доступ по SSH и терминалу. - Журналирование, совместимое с syslog, с отображением в окне. - Туннелирование для безопасного предоставления доступа к средам через интернет при необходимости. - Локальные сервисы для безопасного подключения к сервисам на локальной машине из пространства. - API для интеграции с другими системами с версионированием через заголовок запроса X-Knot-Api-Version; неразрушающие изменения применяются ко всем версиям, а разрушающие появляются только в последней версии. Примечания по безопасности: Knot предназначен для доверенных частных сетей, а не для прямого доступа из открытого интернета; разработчики подключаются через VPN или аналогичные средства. Для развертываний в нескольких местах может подойти mesh-сеть. При включенном туннелировании порт туннеля отделен от веб-интерфейса и агентских интерфейсов, и публичный трафик должен направляться только на интерфейс туннеля. Если веб-интерфейс открыт для интернета, рекомендуется использовать одноразовые пароли на основе времени (TOTP), которые работают с распространенными приложениями-аутентификаторами. Документация и краткое руководство доступны на getknot.dev. Иконки взяты из Heroicons, Flowbite, dashboard-icons и devicon и используются только для идентификации. Проект выпущен под лицензией Apache 2.0.