Blog

O tTerm agora funciona no navegador

Até agora, o tTerm vivia no Telegram: comandos para os seus servidores direto de um chat. Hoje lançamos o tTerm Web, um terminal de verdade no seu navegador. Todos os seus servidores e computadores em uma aba, cada comando em um bloco próprio e nenhuma chave no seu dispositivo.

Este é o tTerm Web: máquinas por projeto à esquerda, abas no topo, cada comando em um bloco próprio.

Por que um navegador, se já existe o bot

O bot é ótimo quando você só tem o celular: reiniciar um serviço, ver o espaço em disco, responder à pergunta de um instalador. Mas um trabalho mais longo pede uma tela grande: várias abas lado a lado, vim e htop em tela cheia, um histórico em que o comando de ontem é fácil de achar.

É para isso que serve o tTerm Web. Ele abre em qualquer navegador, no notebook, no tablet ou no celular, e não precisa de nada instalado no dispositivo que você usa para trabalhar.

Cada comando em um bloco próprio

Num terminal comum, tudo se mistura num fluxo só, e é preciso procurar com os olhos onde um comando acabou e o seguinte começou. No tTerm, cada comando vem em um bloco próprio: o comando, a saída, o código de retorno, o tempo, o diretório e a branch do git.

Você pode copiar um bloco junto com a saída, recolhê-lo ou executá-lo de novo. Enquanto um comando roda, a saída aparece ao vivo, e, quando ele termina, o bloco vira texto simples, fácil de selecionar e copiar.

Uma linha de entrada como um editor

Embaixo fica uma linha de entrada própria. Shift+Enter começa uma nova linha, um comando do seu histórico aparece sugerido em cinza, e Tab completa. O histórico fica guardado do nosso lado, então é o mesmo em todos os seus dispositivos.

Acima da linha, você vê onde está: o diretório e a branch. Clique em um deles e escolha outra opção na lista, e o cd ou o git switch roda como um bloco comum. E, antes de um comando perigoso, daqueles que não têm volta, o tTerm pede confirmação.

vim, htop e sudo

Programas de tela cheia ocupam toda a área do terminal e funcionam normalmente, e o sudo também. Se você não quiser blocos, existe um modo clássico: um terminal contínuo, do jeito que você está acostumado.

O terminal não fecha junto com a aba

O terminal vive no nosso servidor, não no seu navegador. Feche o notebook no meio de um build num servidor: o build continua e a saída fica guardada. Abra o tTerm em outro dispositivo, e o terminal está lá.

Abas de projetos diferentes abrem lado a lado e levam o código do projeto: P/web-01, A/api-prod. Cmd+K abre a paleta: vá para qualquer terminal, abra um novo em qualquer máquina ou execute uma ação.

Como conectar uma máquina

Um servidor Linux se conecta com um comando. O tTerm Web mostra o comando quando você adiciona uma máquina, e você o roda no servidor:

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

O instalador cria no servidor um usuário chamado tterm, adiciona uma linha ao authorized_keys dele e lhe dá sudo num arquivo próprio em /etc/sudoers.d. Ele não toca no sshd_config, não reinicia o sshd e não abre portas. Alguns segundos depois, o servidor aparece na sua lista.

Um computador com macOS ou Linux se conecta por meio de um pequeno agente. Ele roda com o seu usuário e se conecta sozinho ao nosso servidor, então não é preciso abrir portas de entrada, e o computador pode ficar atrás de NAT. O agente é desinstalado com um comando.

Segurança

Nós nos conectamos às suas máquinas, por isso projetamos o acesso para ser fácil de conceder e igualmente fácil de revogar.

  • Suas chaves não são necessárias. Para cada conexão, o tTerm assina um novo certificado SSH com o seu nome. Ele vale só para aquele servidor e para de funcionar dois minutos depois.
  • Assinatura isolada. As chaves com que assinamos ficam num processo separado, sem rede. O programa principal não consegue lê-las, só pedir uma assinatura, e cada assinatura fica registrada.
  • Sem intermediários. O servidor do tTerm fica na UE. A página e os terminais vão direto para ele: a Cloudflare só cuida do nosso DNS e nunca vê os seus comandos.
  • Fácil de revogar. Exclua um servidor no tTerm, e o tTerm retira o próprio acesso desse servidor; se o servidor não responder, o tTerm mostra o comando que faz isso lá. Como remover todo o resto que o instalador configurou está explicado no início do próprio script.
  • Código aberto. O tTerm Web e o agente têm código aberto sob a licença AGPL-3.0. O script de instalação é curto, e vale a pena lê-lo antes de rodar.

Quanto custa

Enquanto o tTerm Web está em beta, ele é grátis para todos.

50máquinas por pessoa
24terminais abertos
30dias de histórico com as saídas

Os planos pagos virão mais tarde, e vamos avisar com bastante antecedência.

E quanto ao bot

O @tTermNetBot continua no ar e funcionando: comandos para os seus servidores direto do chat, quando você só tem o celular. Por enquanto, o bot e o app web funcionam separadamente, cada um com a sua lista de máquinas. Mais tarde, vamos juntá-los.

O que vem a seguir

A próxima grande etapa é o trabalho em equipe: papéis num projeto, um registro compartilhado de comandos e a observação do terminal de um colega, em que quem está sendo observado sempre vê quem está observando. Computadores com Windows ainda não têm suporte; vamos chegar a eles mais tarde.

Experimente o tTerm Web

Entre com o seu e-mail: você recebe um código, e depois, nos seus próprios dispositivos, basta um código curto. O seu primeiro servidor se conecta em um minuto.

Comece grátis

Mais do blog

Todos os posts
Todos os posts