Зачем рабочий стол поверх SSH.
Графическая среда на удалённом сервере звучит как решение в поисках задачи. Вот честный разбор — включая случаи, когда эту страницу стоит закрыть и остаться при своём терминале.
«Всё это я и так умею через ssh и vim»
Умеете. Абсолютно всё, что есть на этой странице, делается сеансом SSH, оболочкой и редактором, который вы и так знаете. Если вы администрируете один сервер, свободно владеете vim и ваша работа укладывается в терминал — это не для вас, и пусть лучше у вас останется то, к чему вы привыкли.
Графическая надстройка появилась не потому, что терминала не хватает. Она появилась потому, что терминал — последовательный интерфейс, а часть задач последовательными не бывает. Следить за передачей, одновременно читая журнал и правя конфиг, — это три окна в любом рабочем столе и три панели tmux плюс изрядная дисциплина в терминале.
Где графическая надстройка действительно себя оправдывает
Четыре ситуации, начиная с тех, о которых нам рассказывают чаще всего.
- Переносить файлы и видеть, как это идёт. Копирование каталога между двумя местами через scp даёт мигающий курсор и надежду. Проводник делает это с очередью задач, живым процентом по каждой передаче и переименованием вместо тихой перезаписи, когда в приёмнике уже есть файл с таким именем. Для папки на 4 ГБ по медленному каналу «оно ещё идёт?» — вполне реальный вопрос.
- Читать код, который писали не вы. Править знакомый файл — работа для vim. Разобраться в незнакомой кодовой базе (прыгать между файлами, идти по include, искать по всему дереву) — работа для дерева файлов и вкладок. Это и даёт редактор Monaco поверх удалённой файловой системы, без выгрузки чего-либо на локальную машину.
- Попасть на сервер, который видишь впервые. Это самый сильный довод. Termal определяет, что на машине работает — Plesk, cPanel, просто nginx или Apache, — перечисляет обслуживаемые сайты с той версией PHP, на которой каждый действительно работает, показывает запущенные службы и контейнеры и находит файлы журналов. Собрать ту же картину руками — это десяток команд и знание того, где каждый дистрибутив что прячет.
- Проверять из сетевой позиции самого сервера. Внутренний маршрут, который отвечает на сервере и больше нигде, неудобно разбирать из терминала. HTTP-клиент выполняет curlна сервере и раскладывает заголовки и тело ответа. Браузер идёт дальше: по умолчанию он ходит в сеть с вашей машины, но выход можно переключить на сервер — тогда трафик идёт по туннелю SOCKS5, поднятому поверх того же SSH-соединения, а значок на панели показывает, какой из двух вариантов сейчас активен. Со встроенными инструментами разработчика в каждой вкладке страница, доступная только изнутри, становится тем, на что вы смотрите, а не тем, о чём догадываетесь.
И всё это по одному соединению
Вот часть, которая важна с точки зрения архитектуры, и именно поэтому рабочий стол — не просто оболочка над кучей вызовов SSH.
Termal OS держит пул переиспользуемых SSH-соединений — по одному на сервер, с keepalive, и всё едет по нему: метрики, файловый проводник, терминал, редактор, чтение журналов. Открытие файлового менеджера не открывает второй сеанс. Ни дополнительного порта, ни агента, ни второй аутентификации, ни чего-либо установленного на машине. С точки зрения сервера вы — один вход по SSH, который делает обычные вещи.
Это же ограничение и позволяет рабочему столу работать на хостинге, где у вас нет root и нет права что-либо ставить: виртуальный хостинг, управляемый хостинг, машина клиента. Графическая панель администрирования, которой нужен демон, там была бы бесполезна.
Что на самом деле есть в рабочем столе
Оконный менеджер с панелью задач, меню «Пуск» и значками на рабочем столе — и 23 приложения. Те, что делают работу:
- Проводник — SFTP-проводник: копирование, перемещение, загрузка, скачивание папки архивом, права, перетаскивание, очередь передач с прогрессом.
- Терминал — настоящая PTY-оболочка, а не окошко для запуска команд.
- Termal Code — Monaco (редактор из VS Code) с деревом файлов и вкладками, правка прямо в удалённой файловой системе.
- Браузер — вкладки, закладки, загрузки, просмотр исходного кода и инструменты разработчика в каждой вкладке.
- Монитор, Процессы, Журналы — метрики в реальном времени, список процессов, из которого можно завершить любой, и чтение журналов с автоматическим поиском привычных файлов Apache, nginx, PHP, MySQL и syslog.
- Веб-запрос, Zip, Git, FTP, Корзина — мелкие инструменты, из-за которых иначе приходится возвращаться в оболочку посреди задачи.
- Помощник — вопросы обычными словами, ответ в виде команды с объяснением. Ничего не выполняется до вашего клика и работает на вашем собственном ключе API.
Есть ещё почтовый клиент, заметки, калькулятор, конвертер, пипетка цвета и несколько игр. Тринадцать из двадцати трёх по умолчанию выключены — постоянно доступны только магазин приложений, настройки, проводник и корзина, — потому что первый запуск, который закапывает файловый проводник под меню с играми, сам по себе был бы доводом против всей затеи. Включите то, чем пользуетесь.
Часть, на которую стоит посмотреть разработчикам
Рабочий стол расширяемый, и модель расширений — самое интересное, что есть в кодовой базе.
Стороннее приложение работает внутри изолированного iframe. Оно не может напрямую тронуть файловую систему, сеть или буфер обмена. Каждый привилегированный вызов уходит сообщением хосту, а тот сверяет его с правами, которые приложение объявило в манифесте — а их всего шесть: fs.read, fs.write, net, storage, clipboard, webview. Они показываются вам при установке. Правило в комментарии к самому рантайму сформулировано прямо: iframe не доверяют никогда, хост проверяет всё.
Здесь это важнее, чем в большинстве систем расширений, потому что эти приложения работают против серверов, к которым доступ по SSH дали вы. Магазин приложений, где расширение могло бы тихо прочитать ваши ключи, был бы неоправдываем.
И SDK — не отдельный урезанный API, прикрученный для посторонних: встроенный калькулятор регистрируется через Termal.app(), ту же публичную точку входа, которой пользуется стороннее приложение. Вместе с SDK поставляются восемь полноценных примеров — от приложения для заметок до контейнера webview и виджета сервера.
Полный справочник — манифест, рантайм, диалоги, выбор файлов, хранилище, сеть, webview, буфер обмена, управление окнами, переводы, упаковка — на странице Termal App Studio.
Чем он не является
- Не замена вашему терминалу. Терминал в нём есть, и вы будете им пользоваться. Если ваша работа уже укладывается в оболочку, рабочий стол не добавит ничего нужного.
- Не протокол удалённого рабочего стола. Нет ни X11, ни VNC, ни RDP, ни графического сервера на вашей стороне канала. Оконный менеджер работает локально, внутри приложения; по SSH-соединению идут только файлы, оболочка и метрики.
- Не работает круглосуточно сам по себе. Сбор данных продолжается с закрытым окном, но приложение должно быть запущено на машине, которая не спит. Закройте ноутбук — сбор остановится; см. сравнение с Netdata, где это важнее всего.
- Не для тысячи серверов. От нескольких до нескольких десятков. Только Linux по SSH: ни SNMP, ни Windows, ни обнаружения устройств в сети.





