====== Утилита ttyd ====== Данная утилита доступна на [[https://github.com/tsl0922/ttyd|github.com]]. Она позволяет запустить выполнение любой утилиты командной строки в браузере. Примеры использования: * Например, может быть удобно, запустить **top**, **htop**, или что-то подобное в браузере. В отдельной вкладке браузера вы всегда сможете посмотреть нагруженность вашего сервера. * Или можно запустить экземпляр **bash** и работать в командной строке сервера в браузере. Это может быть удобно, если вы по какой-то причине не можете использовать **ssh**. * И простые команды, которые при выполнении дают какой-то вывод и завершаются, можно запустить с помощью этой утилиты. Это могут быть такие команды как: **ls**, **df**, **du ** и тому подобное. При этом, как только вы обновляете страничку, на сервере выполняется данная утилита и результат выводится в браузере. ==== Практика ==== Данная утилита состоит из одного бинарника, который можно скачать с помощью следующей команды: $ wget -O ttyd [[https://github.com/tsl0922/ttyd/releases/download/1.7.3/ttyd.x86_64|https://github.com/tsl0922/ttyd/releases/download/1.7.3/ttyd.x86_64]] Дальше даём приложению право запускаться: $ chmod u+x ttyd И запускаем, например **bash**: $ ./ttyd bash После запуска видим порт, на котором запустился bash. И подключаемся по ip-адресу сервера и этому порту с помощью браузера, например: **httt://192.168.0.5:7681**. {{https://sysadminium.ru/wp-content/uploads/2023/09/image.png?nolink&}}** // ** Эта утилита имеет ряд опций, вот некоторые из них: * **-p ** — порт на котором мы запускаем приложение (по умолчанию 7681, можно указать 0 чтобы использовать случайный порт); * **-i ** — сетевой интерфейс который будет использоваться (например — eth0); * **-c ** — логин и пароль, который потребуется указать в браузере (по умолчанию парольная аутентификация выключена); * **-m ** — максимальное количество клиентов; * **-o** — разрешает подключаться только одному клиенту, при этом как только произойдет дисконнект (например клиент закроет вкладку браузера или перезагрузит её), то web-приложение завершит свою работу; Приложение позволяет работать через **Nginx reverse proxy** и использовать **TLS сертификаты**. Также вы можете сделать **Systemd юнит**, чтобы запускать эту утилиту как службу. На страничке [[https://github.com/tsl0922/ttyd/wiki|https://github.com/tsl0922/ttyd/wiki]] — вы можете почитать про дополнительные опции.