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.
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.
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