Блог

tTerm теперь работает в браузере

До сих пор tTerm жил в Telegram: команды на сервер прямо из чата. Сегодня открываем tTerm Web, настоящий терминал в браузере. Все твои серверы и компьютеры в одной вкладке, каждая команда приходит отдельным блоком, а ключи на устройстве не нужны.

Так выглядит tTerm Web: машины по проектам слева, вкладки сверху, каждая команда отдельным блоком.

Зачем браузер, если есть бот

Бот хорош, когда под рукой только телефон: перезапустить сервис, посмотреть место на диске, ответить на вопрос установщика. Но долгая работа просит большой экран: несколько вкладок рядом, vim и htop на всё окно, историю, в которой легко найти вчерашнюю команду.

Для этого мы сделали tTerm Web. Он открывается в любом браузере, на ноутбуке, планшете и телефоне, и ничего не требует ставить на устройство, с которого ты работаешь.

Каждая команда отдельным блоком

В обычном терминале всё сливается в одну ленту, и где кончилась одна команда и началась другая, приходится искать глазами. В tTerm каждая команда приходит отдельным блоком: сама команда, её вывод, код возврата, время, каталог и ветка git.

Блок можно скопировать вместе с выводом, свернуть или выполнить ещё раз. Пока команда работает, вывод идёт живьём, а когда она закончилась, блок застывает в обычный текст, который легко выделить и скопировать.

Строка ввода как в редакторе

Внизу своя строка ввода. Shift+Enter переносит строку, серым подсказывается команда из истории, Tab дополняет. История хранится у нас, поэтому она одна на всех твоих устройствах.

Над строкой видно, где ты: каталог и ветка. Нажми на них и выбери нужные из списка, а cd и git switch выполнятся обычным блоком. А опасную команду, после которой уже нечего чинить, tTerm переспросит.

vim, htop и sudo

Полноэкранные программы открываются на всю область терминала и работают как обычно, sudo тоже. А если блоки не нужны, есть классический режим: один сплошной терминал, как ты привык.

Терминал не закрывается вместе с вкладкой

Терминал живёт на нашем сервере, а не в браузере. Закрой ноутбук посреди сборки на сервере: она продолжится, а вывод сохранится. Открой tTerm с другого устройства, и терминал будет на месте.

Вкладки из разных проектов открываются рядом и подписаны кодом проекта: P/web-01, A/api-prod. А Cmd+K открывает палитру: перейти к любому терминалу, открыть новый на любой машине или выполнить действие.

Как подключить машину

Сервер на Linux подключается одной командой. tTerm Web покажет её, когда ты добавляешь машину, а выполнить её нужно на сервере:

$ curl -sSL https://connect.tterm.net/s/… | sudo sh

Установщик заводит на сервере пользователя tterm, добавляет одну строку в его authorized_keys и даёт ему sudo отдельным файлом в /etc/sudoers.d. sshd_config он не трогает, sshd не перезапускает и портов не открывает. Через несколько секунд сервер появится в списке.

Компьютер на macOS или Linux подключается через небольшого агента. Он работает от твоего пользователя и сам выходит на связь с нашим сервером, поэтому входящие порты не нужны, а компьютер может стоять за NAT. Удаляется агент одной командой.

Безопасность

Мы подключаемся к твоим машинам, поэтому устроили доступ так, чтобы его было легко дать и так же легко забрать.

  • Твои ключи нам не нужны. Для каждого подключения tTerm подписывает новый сертификат SSH с твоим именем внутри, и через две минуты он перестаёт действовать.
  • Подпись отдельно. Ключи, которыми мы подписываем, живут в отдельном процессе без сети. Основная программа не может их прочитать, а только просит подпись, и каждая подпись записывается.
  • Без посредников. Сервер tTerm стоит в ЕС. Страница и терминалы идут к нему напрямую: Cloudflare у нас отвечает только за DNS и команд не видит.
  • Доступ легко забрать. Удалишь машину в tTerm, и он покажет команду, которая убирает его доступ с сервера. Как убрать всё остальное, что поставил установщик, написано в начале самого скрипта.
  • Открытый код. tTerm Web и агент открыты под лицензией AGPL-3.0. Установочный скрипт короткий, и его стоит прочитать перед запуском.

Сколько это стоит

Пока tTerm Web в бете, он бесплатный для всех.

50машин на человека
24открытых терминала
30дней хранится история с выводом

Платные тарифы появятся позже, и мы напишем о них заранее.

А что с ботом

@tTermNetBot остаётся и работает: команды на сервер прямо из чата, когда под рукой только телефон. Пока бот и веб живут отдельно, у каждого свой список машин. Потом мы их соединим.

Что дальше

Следующая большая часть – работа в команде: роли в проекте, общий журнал команд и наблюдение за терминалом коллеги, где тот, за кем смотрят, всегда видит, кто смотрит. Компьютеры на Windows пока не поддерживаются, до них дойдём позже.

Попробуй tTerm Web

Вход по почте: придёт код, а на своих устройствах потом хватит короткого кода. Первый сервер подключается за минуту.

Начать бесплатно

Ещё в блоге

Все записи
Все записи