ttyd Ваш терминал в браузере — просто, быстро, безопасно
Представьте ситуацию: вам срочно нужно выполнить команду на сервере, но под рукой только телефон или чужой компьютер без SSH-клиента. Знакомо? Именно такие проблемы решает ttyd — простой, но мощный инструмент для доступа к терминалу через веб-браузер.
Что такое ttyd?
ttyd — это легковесная утилита командной строки, которая создаёт веб-интерфейс для вашего терминала. По сути, она «оборачивает» ваш терминал в веб-страницу, доступную по сети. Проект написан на C с использованием libuv для асинхронного ввода-вывода и WebGL2 для ускоренного рендеринга в браузере.

Ключевые возможности
-
Полноценный терминал в браузере
- Поддержка CJK-символов и IME (Input Method Editor)
- Шестипиксельная графика (Sixel) для вывода изображений
- Настраиваемый тип терминала (по умолчанию xterm-256color)
-
Безопасность
- Поддержка SSL/TLS через OpenSSL/Mbed TLS
- Базовая аутентификация (username:password)
- Ограничение доступа по origin (защита от CSRF)
-
Передача файлов
- Встроенная поддержка ZMODEM (через lrzsz)
- Альтернативный протокол trzsz
-
Гибкость
- Запуск любых команд с аргументами
- Настройка прав доступа (read-only или запись)
- Поддержка IPv6 и UNIX-сокетов
Как это работает технически?
ttyd использует WebSockets для двусторонней связи между браузером и сервером. На стороне клиента работает xterm.js — популярная библиотека эмуляции терминала. Серверная часть обрабатывает ввод/вывод через псевдотерминал (PTY), что обеспечивает полную функциональность обычного терминала.
Интересный момент: для графического вывода используется Sixel — «ретропротокол» из 1980-х, который неожиданно обрёл вторую жизнь в современных терминалах.
Практическое применение
-
Удалённое администрирование Быстрый доступ к серверу из любого места без настройки SSH:
ttyd -p 8080 bash -
Демонстрации и обучение Показывайте терминальные операции студентам или коллегам, просто отправив ссылку.
-
IoT-устройства На устройствах с ограниченными ресурсами (например, OpenWrt) ttyd становится лёгкой альтернативой полноценному SSH-серверу.
-
Отладка в облаке Запустите ttyd в контейнере Docker для интерактивной отладки:
docker run -it --rm -p 7681:7681 tsl0922/ttyd
Установка — проще некуда
- macOS:
brew install ttyd - Linux: скачайте бинарник из релизов или
snap install ttyd --classic - Windows:
winget install tsl0922.ttydили через Scoop - Docker:
docker pull tsl0922/ttyd
Альтернативы
- Wetty: Node.js решение с SSH-клиентом в браузере
- GoTTY: Аналогичный инструмент на Go, но с меньшей функциональностью
Вывод: стоит ли пробовать?
Если вы:
- Администрируете серверы
- Работаете с IoT/встраиваемыми системами
- Проводите демонстрации или обучение
- Часто оказываетесь за компьютером без SSH-клиента
...то ttyd станет вашим незаменимым помощником. Простота установки, минимальные требования к ресурсам и богатая функциональность делают этот проект отличным выбором для самых разных сценариев.
Попробуйте — возможно, вы удивитесь, как жили без этого инструмента раньше!
