Об этом проекте
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.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.