Сейчас модно запускать всякие интересные штуки прямо внутри браузера. Некоторые из них язык не поворачивается назвать веб-приложениями — разработчики дошли уже до полноценных систем виртуализации, написанных на JavaScript. Практическая ценность подобных программ обычно невелика, но есть и приятные исключения из этого правила. Недавно был выпущен первый релиз Gate One — эмулятора терминала и клиента SSH. Программа не требует установки сторонних плагинов или дополнений и использует стандартный API HTML5.
Это не первый подобный продукт. Полноценные командные оболочки (обычно их пишут на PHP или Perl) весьма популярны у клиентов веб-хостинга, но Gate One отличается от конкурентов наличием некоторых продвинутых возможностей.
Программа состоит из клиента на JavaScript, который отвечает за пользовательский интерфейс, и написанной на Python с использованием модуля pyOpenSSL серверной части. Серверная часть отвечает за обработку сеансов и взаимодействует с работающим в браузере клиентом через WebSockets. Данные при этом шифруются. Исходный код продукта доступен на условиях AGPLv3.
Оценить работу Gate One можно на сайте проекта. Для этого нужно зайти туда при помощи поддерживающего WebSockets браузера и нажать клавишу Esc. Программа отличается удобным интерфейсом: она работает с буфером обмена, позволяет просматривать изображения в терминале, имеет менеджер закладок и т.д. и т.п. Нет в Gate One проблем с Unicode и русским языком, а в одном окне открывается несколько сессий. Кстати, работу сессии можно продолжить после разрыва соединения между клиентской и серверной частями Gate One или после перезапуска браузера. Серверный скрипт также перезапускается без разрыва сеансов.
Кроме всего прочего, Gate One позволяет вести подробные логи действий пользователя и даже выводить их в видеоролик. Возможности программы могут быть расширены с помощью плагинов к клиентской и серверной частям (на JavaScript и Python). На данный момент доступны некоторые дополнительные механизмы аутентификации и плагин для повтора действий в терминале. В общем, получилась отличная штука для администраторов и веб-разработчиков — её можно установить, к примеру, на хостинг или на домашний сервер. А поскольку это свободный продукт — никто не мешает включать Gate One в другие проекты.