About this project

Knot is an open-source management solution for cloud development environments, designed to run inside a Nomad cluster or on local machines. It combines a browser-based web interface with command-line tools so that teams can deploy and access development environments without each developer maintaining their own configuration. Key capabilities described in the README: - Web-based management interface for creating and managing environments. - Browser access to Visual Studio Code and Code Server, plus an in-browser terminal. - Command-line tools for simplifying container access. - User and permission management, groups to control which templates users can see, and custom roles. - Environment templates for consistent, repeatable development spaces. - Integration with Nomad for cluster management, and support for local containers via Docker or Podman. - KVM virtual machines: spaces can run as full VMs on KVM-capable nodes, booted from cloud images, with bridged (static IP) or NAT networking. - Quotas limiting resource usage and the number of spaces per user. - Automatically generated development URLs for spaces. - Support for web-based VNC servers such as KasmVNC. - Remote servers so environments can be deployed close to developers while templates and users are managed centrally, avoiding a single point of failure. - Sharing of spaces with other users, granting SSH and terminal access. - Syslog-compatible logging with an in-window display. - Tunneling to securely expose environments to the internet when needed. - Local services to connect securely to services on the local machine from within a space. - An API for integration with other systems, with versioning via the X-Knot-Api-Version request header; non-breaking changes apply to all versions while breaking changes appear only in the latest version. Security notes: Knot is intended for trusted, private networks rather than direct exposure to the open internet, with developers connecting via VPN or similar. For multi-location deployments a mesh network may be suitable. When tunneling is enabled, the tunnel port is separate from the web and agent interfaces, and public traffic should be directed only to the tunnel interface. Time-based one-time passwords (TOTP) are recommended if the web interface is exposed to the internet, and work with common authenticator apps. Documentation and a quick-start guide are available at getknot.dev. Icons are sourced from Heroicons, Flowbite, dashboard-icons and devicon, used for identification only. The project is released under the Apache 2.0 license.